我有/admin/login
和/user/login
我正在寻找两个视图来共享相同的布局文件,因此希望将第一个段(admin或user)传递给路径助手。
这可能吗?
如此有效,我希望做类似的事情:
{{ route($thisIsDynamic.'.login') }}
其中$thisIsDynamic
可以是admin
或user
,具体取决于网址。
答案 0 :(得分:0)
路由只能包含路由名称。如果要传递链接,则应使用URL ::
{{ URL::to($thisIsDynamic.'login') }}
请参阅:Laravel blade templates, foreach variable inside URL::to?
答案 1 :(得分:0)
根据我的理解,您可以尝试使用外卡并将数据传递到URL中,如下所示:
<强>路由强>
Route::get('/login/{type}', function($type){
return view('login', compact('type'));
});
您现在可以访问视图上的$type
变量。
现在,如果您想要访问该路线,只需添加一个名称,然后在其上传递$type
。
答案 2 :(得分:0)
我不建议在动态时根据路由名称进行重定向。但如果你真的想这样做,你就是这样做的。
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
我认为这就是你想要做的。如果我误解了任何内容或者您有任何疑问,请告诉我。