php - 根据数据透视表返回选中的复选框

标签 php laravel laravel-4 eloquent

这个问题是关于 Laravel 和 PHP 的。

我正在构建一个表单,允许使用复选框将用户(玩家)分配给团队/从团队中取消分配。

许多用户可以属于许多团队。我有一个数据透视表 team_user 来管理多对多关系。

我无法根据数据透视表中是否存在关联来填充复选框。

到目前为止,我将它们分为两个单独的“位”,您可以在下面看到:

我的 Controller :

$users_checked = $team->users()->get();
$users = User::all();
return View::make('team/addplayers', compact('users', 'team', 'users_checked'));

我的观点:

@foreach ($users_checked as $user_checked)
    <p>
    {{ Form::checkbox('player[]', $user_checked->id, true) }}
    {{ Form::label('email', $user_checked->email) }}
    </p>
@endforeach

@foreach($users as $user)
    <p>
    {{ Form::checkbox('player[]', $user->id ) }}
    {{ Form::label('email', $user->email) }}
    </p>
@endforeach

将这些“组合”到一个列表中的最明智的方法是什么,如果关联存在于数据透视表中,则勾选该复选框,如果不存在,则不勾选该复选框?

非常感谢您的帮助!

最佳答案

这些答案让我走上了正轨,谢谢。我的实际解决方案如下:

在我的 Controller 中:

public function showAddPlayer(Team $team)
{
    $users = User::all();
    return View::make('team/addplayers', compact('users', 'team'));
}

在我看来:

@foreach ($users as $user)
    <p>
        {{ Form::checkbox('player[]', $user->id, $team->users->contains($user->id)) }}
        {{ Form::label('email', $user->email) }}
    </p>
@endforeach

关于php - 根据数据透视表返回选中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23174761/

相关文章:

php - 如何解决在 apache 上找不到 favicon.ico 错误

php - 如果列不自动增量则显示列

php - Laravel 4 - 镜像数据库?

php - 如何验证文件数组?

php - Laravel 路由 : How to route when using URL query string?

php - 处理 PHP 复选框时出现问题,代码可与 INSERT 配合使用,但在使用 UPDATE 时出现语法错误

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

javascript - bootstrap jquery文件上传和laravel

php - AJAX 模式下的验证错误

php - 迁移后的 Laravel 种子