将变量传递给Laravel {{route}}帮助器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将变量传递给Laravel {{route}}帮助器相关的知识,希望对你有一定的参考价值。
我有/admin/login
和/user/login
的路线
我正在寻找两个视图来共享相同的布局文件,因此希望将第一个段(管理员或用户)传递给路径助手。
那可能吗?
如此有效,我希望做的事情如下:
{{ route($thisIsDynamic.'.login') }}
根据URL,$thisIsDynamic
可能是admin
或user
。
答案
route只能包含路由名称。如果你想传递链接,你应该使用URL ::
{{ URL::to($thisIsDynamic.'login') }}
请参阅:Laravel blade templates, foreach variable inside URL::to?
另一答案
根据我的理解,您可以尝试使用外卡并将数据传递到URL,如下所示:
路线
Route::get('/login/{type}', function($type){
return view('login', compact('type'));
});
您现在可以访问视图上的$type
变量。
现在,如果你想访问路线,只需添加一个名称,然后传递$type
。
另一答案
当它们是动态的时,我不建议基于路由名称进行重定向。但如果你真的想这样做,你就是这样做的。
Route::get('admin/login',"SomeController@someMethod")->name('admin-login');
Route::get('user/login',"SomeController@someMethod2")->name('user-login');
而且,每当你想通过名字,你可以做这个{{ route("$thisIsDynamic-login") }}
。但是,正如我所说,这不是正确的方法。这是你如何以正确的方式做到这一点。
Web.php
Route::get('{type}/login',function(){
return view('login')->with('type',$type);
});
login.blade.php(只是你如何做的一个例子)
@extends('layout.you.want.to.extend')
@section('content')
@if($type == 'user')
// User login form
@else
// Admin login form
@endif
@endsection
我认为这就是你想要做的。如果我误解了任何内容或者您有任何疑问,请告诉我。
以上是关于将变量传递给Laravel {{route}}帮助器的主要内容,如果未能解决你的问题,请参考以下文章
Laravel - 如何通过资源路由将变量传递给控制器?