如何更改' on'复选框在Laravel中返回的值

时间:2016-11-01 17:18:59

标签: php laravel request

我想创建一个新用户,这是我的观点:

<form enctype="multipart/form-data" action="/user/create" method="POST">
                <label>Naam</label>
                <input type="text" name="name" id="name">

                <label>Email</label>
                <input type="text" name="email" id="email">

                <label>Password</label>
                <input type="text" name="password" id="password">

                <label>Admin</label>
                <input type="checkbox" name="admin" id="admin"><label for="admin">Admin</label>

                <label>Safety Settings</label>
                <input type="checkbox" name="watchDashboard" id="watchDashboard"><label for="watchDashboard">Watch Dashboard</label><br>
                <input type="checkbox" name="watchBlocks" id="watchBlocks"><label for="watchBlocks">Watch Blocks</label>
                <input type="checkbox" name="editBlocks" id="editBlocks"><label for="editBlocks">Edit Blocks</label>
                <input type="checkbox" name="watchWastes" id="watchWastes"><label for="watchWastes">Watch Wastes</label>
                <input type="checkbox" name="editWastes" id="editWastes"><label for="editWastes">Edit Wastes</label>
                <input type="checkbox" name="watchGrondstof" id="watchGrondstof"><label for="watchGrondstof">Watch Grondstof</label>
                <input type="checkbox" name="editGrondstof" id="editGrondstof"><label for="editGrondstof">Edit Grondstof</label>
                <input type="checkbox" name="manageUsers" id="manageUsers"><label for="manageUsers">Manage Users</label>
                {{ csrf_field() }}
                <input type="submit" class="pull-right btn btn-sm btn-primary">
            </form>

当我点击提交按钮时,我想获取数据库中的数据:

public function create(Request $request){
    $user = new User();
    $user::create(
        $request->all()
    ); 
}

当我点击提交时,我收到此错误:

  

常规错误:1366错误的整数值:&#39; on&#39;对于专栏。

如何确保$request->all()当值为真或1?

谢谢!

2 个答案:

答案 0 :(得分:1)

如何在将数据传递给模型之前修改数据?

public function create(Request $request){
    $data = $request->all();
    $data['watchDashboard'] = $request->watchDashboard ? 1 : 0;
    $data['watchBlocks'] = $request->watchBlocks? 1 : 0;
    ..... (other checkboxes)
    $user = new User();
    $user::create($data); 
}

没有尝试过,但那是个主意。

答案 1 :(得分:0)

我通常使用如下输入: 在<form>元素之后,我插入隐藏的输入,其名称与复选框输入相同,但默认值为 - 在这种情况下为0 - 并且对于复选框添加值属性 - 在这种情况下设置为1这样,如果未选中该复选框,则该元素设置为0,但如果用户检查输入,则将覆盖隐藏输入的值。