簡體   English   中英

Laravel - 多選並保存到數據庫

[英]Laravel - multiple selection and saving to database

我有這個用於汽車帖子的小項目。 我發布了我的帖子,所以一切正常,但現在我需要有多個選擇。 所以這是我的PostsController

...
/**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $this->validate($request, [
            'title' => 'required',
            'brand' => 'required',
            'model' => 'required',
            'age' => 'required',
            'cc' => 'required',
            'hp' => 'required',
            'body' => 'required',
            'fuel' => 'required',
            'safety' => 'required'
        ]);


        $post = new Post;
        $post->title = $request->input('title');
        $post->brand = $request->input('brand');
        $post->model = $request->input('model');
        $post->age = $request->input('age');
        $post->cc = $request->input('cc');
        $post->hp = $request->input('hp');
        $post->body = $request->input('body');
        $post->fuel = $request->input('fuel');
        $post->safety = $request->input('safety');
        $post->save();

        return redirect('/home')->with('success', 'Your post is posted!');
    }
...

現在這是我的createpost.blade.php

...
<div class="column">
<label for="safety">Safety:</label></br>
 <select class="form-control" name="safety">
   <option value="" disabled selected>Select your option</option>
   <option value="diesel">ABS</option>
   <option value="gasoline">ESP</option>
   <option value="electric">CHILD LOCK</option>
   <option value="electric">AirBAG</option>
 </select>
</div>
...

我怎樣才能使這個選擇輸入用於多項選擇,並且所有選擇都需要保存到我的數據庫中? 我有我的Post.php模型:

...
class Post extends Model
{
    protected $table = 'posts';

    protected $primaryKey = 'id';
}

如果有人對此有解決方案,請幫忙? 或一些教程或任何類似的幫助!

嘗試一些多選庫

Select2就是其中之一

在您的blade.php 文件中使用數組並使用多個

<select class="form-control" name="safety[]" multiple>

在控制器中

$post->safety = implode(',', $request->input('safety'));

您可以在blade文件中使用checkbox

 $("input:checkbox").click(function(e){ console.log(e.target.checked ? e.target.value : e.target.value+' is unchecked') });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div> <label for="safety">Safety:</label></br> <input type="checkbox" value="ABS" name="safety[]" />ABS <input type="checkbox" value="ESP" name="safety[]" />ESP <input type="checkbox" value="CHILD LOCK" name="safety[]" />CHILD LOCK <input type="checkbox" value="AirBAG" name="safety[]" />AirBAG </div>

並從控制器中的$request檢索您的數據,如下所示:

$request->input('safety') // return an array with all checked value, e.g: ['ABS','ESP'] 

在選擇標簽中添加多個屬性

改變

<select class="form-control" name="safety[]">

<select class="form-control" name="safety[]" multiple>

這將讓您選擇多個選項。 用戶必須使用 control/cmd 鍵來選擇多個選項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM