【发布时间】:2017-05-10 06:44:31
【问题描述】:
当我提交表单时,我试图通过路由传递一个 id。 当我传递一个硬编码的 id 时,像
<form class="form-horizontal" role="form" method="POST" action="{{ route('submit.lmo_list', ['id'=>7]) }}">
它有效。该表显示外键 id 为 7。
当我从用户表传递 id 时
<form class="form-horizontal" role="form" method="POST" action="{{ route('submit.lmo_list', ['id'=>auth()->user->id]) }}">
这也有效,数据库中的 id 字段显示用户 ID。
我想从通知表传递一个 id,当我尝试做类似的事情时
<form class="form-horizontal" role="form" method="POST" action="{{ route('submit.lmo_list', ['id'=>notification()->id]) }}">
它会抛出一个错误,提示未找到方法通知。
通知控制器
public function create(Request $request)
{
$notification = Notification::create([
'unit_code'=>$request->unit_code,
'unit_name'=>$request->unit_name,
'project_title'=>$request->project_title,
'project_ref_number'=>$request->project_ref_number,
'storage_location'=>$request->storage_location,
'keeper_name'=>$request->keeper_name,
'user_id'=>Auth::user()->id
]);
return redirect()-> route('show.lmo_form', $notification->id);
}
在这里,我在提交表单后通过 url 传递通知 id,它正确显示了 url 中的 id。
通知 lmo 控制器
public function create(Request $request, $notification_id)
{
/*this loop is because im adding rows dynamically to the table*/
$count = count($request->input('lmo_name'));
for ($i=0; $i<$count; $i++){
$data = AddLmoNotification::create([
'lmo_name'=>$request->lmo_name[$i],
'lmo_risk_level'=>$request->lmo_risk_level[$i],
'lmo_quantity'=>$request->lmo_quantity[$i],
'lmo_volume'=>$request->lmo_volume[$i],
'notification_id'=>$notification_id
]);
}
return redirect()->route('show.go_to_notification');
}
这是将数据与第一个表的 id 一起插入到第二个表中的控制器。
当我提交表单时出现错误
未定义的方法notification()
请帮忙
如果您需要查看任何其他文件,例如模型和数据库迁移,请告诉我。
【问题讨论】:
标签: mysql laravel-5 foreign-keys parameter-passing