繁体   English   中英

将变量传递到Laravel {{route}}助手中

[英]Pass variable into Laravel {{ route }} helper

我有/admin/login/user/login路由

我正在寻找两个视图以共享相同的布局文件,因此希望将第一段(管理员或用户)传递到路线帮助器中。

那可能吗?

如此有效,我希望做些类似的事情:

{{ route($thisIsDynamic.'.login') }}

其中$thisIsDynamic将是admin还是user具体取决于URL。

仅路线可以包含路线名称。 如果要传递链接,则应使用URL ::

{{ URL::to($thisIsDynamic.'login') }}

请参阅: Laravel刀片模板,URL :: to中的foreach变量?

根据我的理解,您可以尝试使用通配符,然后将数据传递到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

我认为这就是您想要做的。 让我知道我是否误解了任何内容,或者您​​还有其他疑问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM