【问题标题】:Passing Javascript variable to route in laravel 5.3将Javascript变量传递给laravel 5.3中的路由
【发布时间】:2017-05-03 18:55:28
【问题描述】:

我有一个 Laravel 刀片表单,其中包含一个表格,其中显示了数据库中的一些数据。当我单击某个列时,我编写了一个 js 函数来将某个选定项目的 id 捕获到一个 js 变量“var selectedItem”。

现在我想将这个js变量传递给'edit.item.blade'页面并加载与这个值对应的相关记录。

我的问题是在 laravel 中编辑所选项目的最佳方法是什么?并且无论如何在按钮单击事件中将此JS变量传递给路由并使用相关记录加载'edit.item.blade'进行编辑。

【问题讨论】:

标签: javascript php laravel-5.3


【解决方案1】:

你通常在 laravel 中做的就是在 url 中传递你想看到的记录的 id。假设您想查看 id 为 1 的报告的详细信息,您将转到指向报告控制器中的显示功能的 URL“/reports/1”。

路线

在您的 routes/web.php 中添加:

Route::get('/reports/{report}',RecordController@show);

它的作用是获取在 /reports/ 之后输入的任何内容并将其传递给 show 函数。所以如果你去 /reports/1 路由会通过 1 到 show 函数

控制器

在您的控制器中,您必须创建一个 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>

【讨论】:

    猜你喜欢
    • 2015-02-22
    • 2015-12-02
    • 1970-01-01
    • 2015-03-16
    • 2017-11-03
    • 2015-01-06
    • 1970-01-01
    相关资源
    最近更新 更多