Laravel 5 将值从一个控制器传递到另一个控制器

Laravel 5 将值从一个控制器传递到另一个控制器,laravel-5,Laravel 5,这么多年了,找不到解决办法。我已经搜索过了,但没有一篇帖子对我有帮助,可能是因为我对拉拉维尔(5.4)还不熟悉,所以没有得到 我希望能够从一个控制器访问另一个控制器。此外,$site\u设置需要可在所有控制器和视图上访问。我还需要从URL获取变量(因此在\uu构造(Request$Request)中Request),但它也不起作用 非常感谢您的帮助 谢谢 见下面的代码: //BaseController class BaseController extends Controller {

这么多年了,找不到解决办法。我已经搜索过了,但没有一篇帖子对我有帮助,可能是因为我对拉拉维尔(5.4)还不熟悉,所以没有得到

我希望能够从一个控制器访问另一个控制器。此外,
$site\u设置
需要可在所有控制器和视图上访问。我还需要从URL获取变量(因此在
\uu构造(Request$Request)
Request
),但它也不起作用

非常感谢您的帮助

谢谢

见下面的代码:

//BaseController
class BaseController extends Controller {

    public function __construct( Request $request ) 
    {
        $slug = $request->slug;

        $site_settings = \DB::table('sites_settings')->where('slug', $slug)->first();

        View::share( 'site_settings', ['slug' => $slug, 'color' => $color] );

    }   
}

class SettingsController extends BaseController
{
    // SettingsController
    public function index( )
    {               

        //how do I access $site_settings here and pass it on to the view?

        // return view('settings.index');
    }
}
----使用会话更新----


}

如果您要在url中传递变量,可以通过get访问该变量并进一步传递。谢谢@GauravRai,我会尝试的。关于将结果从BaseController传递给SettingsController的另一个问题,您能帮忙吗?@devofash如果您的
SettingsController
扩展了
BaseController
类,那么它可以访问
BaseController
的所有公共和受保护属性。您是否尝试过使用
$site\u settings=\DB::table(…
BaseController::\u构造(…)
方法中使用
$this->site\u settings=\DB::table(…
而不是
$this->site\u settings=\DB::table(…
),然后通过
设置控制器::索引(…)中的
$this->site\u settings>调用来接收站点设置值
method。如果站点设置不经常更改,则将其存储在会话中,否则您将对每个页面请求进行额外查询。只要在用户更改设置时更新会话即可。@Joe,谢谢。因此我完成了以下操作,但最初是dd(会话::get('slug'))总是空的,即使我正在设置它,为什么??
 //BaseController
 class BaseController extends Controller {

public function __construct() 
{

    $slug = Route::input('slug');

    if(Session::get('slug') == $slug)
    {
        dd(Session::get('slug'));
    }
    else
    {
        $site_settings = \DB::table('sites_settings')->where('slug', $slug)->first();

        Session::put('slug', $site_settings->slug);
    }


}