如何在laravel php中将变量从视图传递到控制器而没有表单

Posted

技术标签:

【中文标题】如何在laravel php中将变量从视图传递到控制器而没有表单【英文标题】:How to pass variables from view to controller without form in laravel php 【发布时间】:2017-02-27 12:01:36 【问题描述】:

我在视图文件夹中有这些值。 .blade 文件是

@foreach($nam as $ergebnisse)
<h3>Id:$ergebnisse->id
Name_Id:$ergebnisse->name_id
Geometrie_Id:$ergebnisse->geometrie_id
</h3>
<h3>

  <li>$ergebnisse->probe</li>
  <li>$ergebnisse->schnittgrosse</li>
  <li>$ergebnisse->temperatur</li>
  <li>$ergebnisse->zeit</li>
  <li>$ergebnisse->aussehen</li>
  <li>$ergebnisse->farbe</li>
  <li>$ergebnisse->deformation</li>
  <li>$ergebnisse->geruch</li>
  <li>$ergebnisse->texture</li>



</h3>

 @endforeach

现在我想根据这些参数进行另一个查询。那么如何将这些参数传递给控制器​​,或者有没有其他方法可以在视图中生成查询并显示它们?

【问题讨论】:

Harron,如果我没记错的话,您想使用上述值触发另一个查询吗? 是的。我想触发另一个查询 Harron 那么你应该在模型本身中执行查询,然后使用compact('data' ,'2ndqueryresult')从控制器传递它的视图 你能帮我如何访问控制器中 $nam 的所有行吗?谢谢 感谢 SoftwareDev 的评论。公共函数 getErgebnisse() $GEM=1; $name =1;$nam=Ergebnisse::where('name_id', $name) ->where('geometrie_id', $GEM) ->get();返回视图('pages.ergebnisse')->with('nam',$nam); 【参考方案1】:

你的问题不是很清楚,所以我有两种可能的解决方案:

    如果您想加载另一个视图,您可以执行以下操作:

您可以发送带有链接的参数,无需是表单。

所以你可以做类似&lt;a href="your-url/$nam-&gt;id"&gt;Do stuff&lt;/a&gt;

这会将您的 $nam 对象的 id 发送到您喜欢的路线。

您的路线将如下所示:

Route::get('your-url/$nam', YourController@test);

在你的控制器中你必须捕捉到这个值

public function test(Nam $nam) 
  return $nam;

    如果您想加载相同的视图并有 2 个不同的查询,只需 在控制器中执行 2 个不同的查询并发送它们 单独的低谷。

所以在你当前的控制器中:

public function index()
 $nam = Nam::all();
// this is your second query:
$nam2 = Nam::latest()->get();

return view('your-view', compact('name','nam2' //this is the second variable))

【讨论】:

感谢您的回答。我是 web 开发的新手,尤其是 laravel。问题是行可以根据用户的选择变化到 8,因此总参数可以达到 72 或更多. 使用链接传递 72 个参数是个好主意吗?我在想可能有某种方法或技巧来传递整个数组并将其放入控制器中。我知道它与 mvc 无关。 您可以在链接中传递任何类型的参数。所以如果你想传递一个数组,只需传递它。我写的 $nam->id 只是一个例子。 laravel.com/docs/5.4/routing#route-parameters

以上是关于如何在laravel php中将变量从视图传递到控制器而没有表单的主要内容,如果未能解决你的问题,请参考以下文章

在PHP Laravel中将变量从foreach循环传递给我的控制器

在 laravel 5.4 中将变量从 Route 传递到 Controller 的最简单方法是啥?

如何在 laravel 5.8 中将变量传递给路由?

如何从 Laravel 的控制器中传递变量到视图

Laravel 5.2 - 如何将变量(数组和整数)从视图传递到控制器?

如何在 Laravel 中将多个数组/变量传递给 DOMPDF?