我正在从事 Laravel 项目,并成功实现了搜索功能,可以使用 twitter type 和jquery从数据库中搜索用户,但是卡住。我想将返回的JSON作为参数传递给路由URL,以便在单击任何给定建议后将结果重定向到用户的个人资料页面。下面是我的代码。
suggestion: function(data) {
return '<a href="{{route('profile', ['username'=>
'+ data.username +'])}}" class="list-group-item"> ' + data.username +
'</a>'
}
带有此代码的点击即可获得此结果 http://battlefield.test/profile/+%20data.username%20+ 相反,我想要 http://battlefield.test/profile/simon 要么 http://battlefield.test/profile/champion
下面是我要重定向到的路由
// Profile
Route::get('profile/{username}', [
'uses'=>'UserController@profile',
'as'=>'profile',
'middleware' => ['auth'],
]);
以下是与我的研究相关的链接,以防有帮助 https://scotch.io/tutorials/implementing-smart-search-with-laravel-and-typeahead-js
任何帮助将不胜感激。预先感谢。
答案 0 :(得分:0)
我终于想出了一个解决方案。通常,从Laravel的视图中访问带有参数的路由,假设您从上面的问题中获得了以下路由
// Profile
Route::get('profile/{username}', [
'uses'=>'UserController@profile',
'as'=>'profile',
'middleware' => ['auth'],
]);
以下是通过href访问它的两种方法:
选项1。
<a href="{{route('profile', ['username'=>here goes your parameter])}}"></a>
选项2。
<a href="/profile/{{here goes your parameter}}"></a>
由于在我的情况下,我使用JSON数据来获取刀片模板“ {{}}”中不易访问的参数,因此第一种选择对我而言并不奏效(如果有人知道为什么可以让我知道),但第二个做到了。这就是我将参数从JSON返回数据传递到URL的方式
'<a href="/posts/'+ data.username +'"></a>'
这是示例返回数据,在这种情况下,该数据将分配给数据
{id: 1, username: "syk", first_name: "symon", last_name: "kibaru"}
答案 1 :(得分:0)
我尝试了很多尝试来弄清楚如何将数组传递到路由中,然后在控制器中接受它,因此有解决方案:
在表单操作中:
<form action="/purchase/{{ json_encode($items) }}" method="get">
在路线上:
Route::get('/purchase/{items}', [
'uses' => Controllers\PurchaseController::class,
'as' => '/purchase',
]);
在控制器中:
public function __invoke($items)
{
json_decode($items);
}