[英]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.