【发布时间】:2018-07-14 19:22:28
【问题描述】:
我有来自两个模型的关系,当用户创建评论时,我需要将评论存储在一个表中并更新另一个表中的状态字段,这应该在同一个表单中提交评论。我收到错误未定义变量:id
我的控制器
public function reply($id)
{
if (Auth::check())
{
$issue = Issue::where('user_id', Auth::id())->where('id', $id)->firstOrFail();
$company = $issue->company;
$interaction = $issue->interaction;
return view('issues.reply', compact('issue', 'company', 'interaction'));
}
else
{
return redirect()->guest('/logon');
}
}
public function postComment(Request $request)
{
$this->validate($request, ['description' => '']);
$interaction = IssueInteraction::create(['issue_report_id' => $request->input('issue_report_id') , 'user_id' => Auth::user()->id, 'description' => $request->input('description') , 'owner' => 'USER', ]);
if ($interaction->save())
{
$issue = Issue::where('id', $id)->findOrFail->id;
$issue->updateOrCreate->status = $request->status;
$issue->save();
}
$interaction->created_at = date('Y-m-d H:i:s.u');
return redirect()->back()->with("status", "Your reply has be submitted.");
}
我的路线
Route::get('/account/issues/{id}', 'IssueInteractionController@reply');
Route::post('interaction', 'IssueInteractionController@postComment');
我的表单
<form class="form-secondary" action="{{ url('/interaction') }}" method="POST">
{!! csrf_field() !!}
<input type="hidden" name="issue_report_id" value="{{ $issue->id }}">
<textarea rows="10" id="description" class="form-control" name="description"></textarea>
<input type="hidden" id="status" name="status" value="2">
<button type="submit" class="btn btn-lg btn-block btn-primary shadow mt-4">@lang('app.Send Reply')</button>
</form>
提前致谢,
【问题讨论】:
-
在哪一行(文件)?提供准确的错误信息。
-
$issue = Issue::where('id', $id)->findOrFail->id;你实际上并没有在任何地方设置$id变量,这就是你得到错误的原因。 -
看来你是对的,但我尝试了一切,但我无法让它工作,当用户从他们有关系的表单交互模型创建评论时,我需要从问题模型更新列状态,它是存储交互和评论,但不更新问题模型的状态。
标签: php laravel laravel-5.5