我正在尝试将评论的路线ID(包含餐厅ID)存储在评论表中名为restaurant_id
的变量中。这是存储功能:
public function store(Request $request) {
if (! Auth::check()) {
return redirect('/index');
}
$review = new Review;
$review->user_id = auth()->user()->id;
$review->restaurant_id = $request->route('id');
$review->value = $request->input('value');
$review->save();
}
这是饭店资料上指向评估模板Add review
的链接。这是表单上的操作:
{!!Form::open(['action' => ['ReviewsController@store'], 'method'=>'POST', 'enctype'=>'multipart/form-data'])!!}
这是评论模板:
<html>
{!!Form::open(['action' => ['ReviewsController@store',], 'method'=>'POST', 'enctype'=>'multipart/form-data'])!!}
<div class="form-group">
{{Form::textarea('value', null, ['id'=>'value', 'placeholder'=>'Insert here', 'name'=>'value'])}}
</div>
{{Form::submit('submit', ['class'=>'btn btn-primary', 'type'=>'submit', 'id'=>'submit'])}}
{!!Form::close()!!}
</html>
提交时出现以下错误:
SQLSTATE [23000]::违反完整性约束:1048列“ restaurant_id”不能为空(SQL:插入评论(user_id,restaurant_id,value,updated_at,created_at)的值(1 、、、 kkkkbkb,2019-07-11 08:39:10,2019-07-11 08:39:10))
答案 0 :(得分:0)
您从哪里获得此价值? $request->route('id');
。 restaurant_id没有看到此$request->route('id');
答案 1 :(得分:0)
在您的表单中添加如下所示的route参数:
{!!Form::open(['action' => ['ReviewsController@store',],'method'=>'POST',
'enctype'=>'multipart/form-data'])!!}
<input name="restaurant_id" type="hidden" value="{{ Request::route('id') }}">
...
{!!Form::close()!!}
注意 {{ Request::route('id') }}
id是您在路径参数中使用的名称。
在您的控制器中:
$review=new Review;
$review->user_id=auth()->user()->id;
$review->restaurant_id=$request->get('restaurant_id');
$review->value=$request->get('value');
$review->save();