将变量传递给 laravel 中的多个视图
Pass variables to multiple view in laravel
当我在视图中使用共享方法时,我想将一个变量传递给多个视图。它说在 View 上找不到共享方法。
你说我怎么用它,我也试过作曲家,但不管我怎么试它都行不通,你能给我一个这个动作的简单例子吗
我的控制器categorycontroller.php
public function site(){
$data = array();
$data['subcategories'] = SubCategory::all();
$data['categories'] = Category::all();
return view('template.sitemap',compact("data"));
}
我的路线web.php
Route::get('/404.html', function () {
return view('template/404');
})->name('404.html');
Route::get('404.html','CategoryController@site')->name('404');
Route::get('/sitemap.html', function () {
return view('template/sitemap');
})->name('sitemap.html');
Route::get('sitemap.html','CategoryController@site')->name('sitemap');
你有什么建议?
您可以使用以下方法之一使变量可在多个视图中访问,例如:
AppServiceProvider(参考:https://laravel.com/docs/5.6/providers ) with ViewComposer ( reference: https://laravel.com/docs/master/views#view-composers)
您需要向您的 ServiceProvider boot() 方法添加类似于此的内容:
public function boot()
{
View::share('variable_name', 'some_value_here');
}
或者在控制器内部:
public function __construct() {
$something = 'just a test';
View::share('something', $something);
}
当我在视图中使用共享方法时,我想将一个变量传递给多个视图。它说在 View 上找不到共享方法。
你说我怎么用它,我也试过作曲家,但不管我怎么试它都行不通,你能给我一个这个动作的简单例子吗
我的控制器categorycontroller.php
public function site(){
$data = array();
$data['subcategories'] = SubCategory::all();
$data['categories'] = Category::all();
return view('template.sitemap',compact("data"));
}
我的路线web.php
Route::get('/404.html', function () {
return view('template/404');
})->name('404.html');
Route::get('404.html','CategoryController@site')->name('404');
Route::get('/sitemap.html', function () {
return view('template/sitemap');
})->name('sitemap.html');
Route::get('sitemap.html','CategoryController@site')->name('sitemap');
你有什么建议?
您可以使用以下方法之一使变量可在多个视图中访问,例如:
AppServiceProvider(参考:https://laravel.com/docs/5.6/providers ) with ViewComposer ( reference: https://laravel.com/docs/master/views#view-composers)
您需要向您的 ServiceProvider boot() 方法添加类似于此的内容:
public function boot()
{
View::share('variable_name', 'some_value_here');
}
或者在控制器内部:
public function __construct() {
$something = 'just a test';
View::share('something', $something);
}