我有一个Laravel刀片表单,其中包含一个表格,可以显示数据库中的一些数据。当我点击某个列时,我写了一个js函数来捕获某个选定项的id到js变量“var selectedItem”。
现在我想将这个js变量传递给'edit.item.blade'页面并加载与该值对应的相关记录。
我的问题是在laravel中编辑所选项目的最佳方法是什么?无论如何要将此JS变量传递给按钮单击事件的路径,并使用相关记录加载“edit.item.blade”进行编辑。
答案 0 :(得分:-1)
你通常在laravel中做的是传递你想在网址中看到的记录的id。假设您要查看ID为1的报告的详细信息,您将转到URL“/ reports / 1”,它指向报告控制器中的show函数。
<强>路线强>
在您的routes / web.php中添加:
Route::get('/reports/{report}',RecordController@show);
这样做是在 / reports / 之后输入任何内容并将其传递给show函数。因此,如果您转到 / reports / 1 ,路线会将 1 传递给show function
<强>控制器强>
在您的控制器中,您必须创建一个show函数,该函数接受您的路径传递的变量。然后,您可以使用该变量查找相应的记录并将其传递给视图。 这看起来像这样
public function show($id){
$report = Report::find($id); // Find the corresponding report
// Pass the report along to the view resources/views/reports/show.blade.php
return view('reports.show',compact($report));
}
显示视图
在您的节目视图中,您现在可以使用$report
从报告中获取任何信息,例如$report->name
,具体取决于您的数据库。
<强>索引强>
现在在索引视图中,您所说的视图我认为,您可以遍历某些表中的所有记录。由于您没有在帖子中包含任何代码,我只是假设您使用foreach循环遍历数据。使用该循环,我们可以根据其ID为每条记录提供链接。 看起来有点像这样
<table>
<tr>
<td> Name </td>
<td> Edit </td>
</tr>
@foreach($reports as $report)
<tr>
<td> $report->name </td>
<td><a href="{{ url('reports/' . $report->id) }}">Edit</a></td>
</tr>
@endforeach
</table>