Laravel将复选框值保存在数据库中

时间:2019-11-19 13:46:08

标签: laravel forms checkbox

我想将值(选中或未选中)保存在我的数据库中,这样当我刷新时它会显示按“保存”时所处的状态。

我曾在此网站和其他网站上对此进行调查,但找不到正确的东西。 所以我一直在寻找LocalStorage之类的替代产品,但这并不是我一直在寻找的东西。

这是我要制作的代码

<form action="{{action('InstagramAccountController@config', $id)}}" method="post">
                {{csrf_field()}}
                <div class="form-group">
                    <label for="followSwitch">Follow</label>
                    <div>
                    <label class="switch">
                        <input type="checkbox" name="follow" value="1" checked>
                        <span class="slider round"></span>
                    </label>
                    </div>

                </div>
                <div class="form-group">
                    <label for="likeSwitch">Like</label>
                    <div>
                    <label class="switch">
                        <input type="checkbox" name="like" value="1" checked>
                        <span class="slider round"></span>
                    </label>
                    </div>

                </div>
                <div class="form-group">
                    <label for="commentSwitch">Comment</label>
                    <div>
                    <label class="switch">
                        <input type="checkbox" name="comment" value="1" checked>
                        <span class="slider round"></span>
                    </label>
                    </div>
                </div>

            <div class="modal-footer">
                <a href="/instagram" class="btn btn-secondary">Close</a>
                <button type="submit" class="btn btn-primary">Save</button>
            </div>
        </form>

部分控制器:

public function Config($id){
        $instagramAccount = InstagramAccount::find($id);
        return view('instagramAccountConfig', compact('instagramAccount', 'id'));
    }

我发现了一些与此相关的东西(也许无关):

/* ROUTE FORCONFIG 
Route::post('/', function(){
    $box = Input::has('follow') ? true : false;
    $box = Input::has('like') ? true : false;
    $box = Input::has('comment') ? true : false;

    Config::create([
        'follow'=> $box,
        'like'=> $box,
        'comment'=> $box,
    ]);
    return 'created';
});
END*/

如果有人对我和我的控制器有任何想法,(可能不止是那两个),请留下解决方案和/或指向我可以找到解决方法的链接。

谢谢。

1 个答案:

答案 0 :(得分:0)

只需更改这样的代码。从$ request获取输入。

    Route::post('/', function(Request $request){
      $follow = $request('follow') ? true : false;
      $like = $request('like') ? true : false;
      $comment = $request('comment') ? true : false;

      Config::create([
        'follow'=> $follow,
        'like'=> $like,
        'comment'=> $comment,
    ]);
    return 'created';
});