尝试将数据数组传递给所有视图,但我不断收到错误next
。不确定遗失的是什么。
我的所有页面指定控制器都扩展了以下BaseController
BaseController
ListNode(3)
布局/ default.blade.php
Undefined variable: data
答案 0 :(得分:0)
您需要将这些变量返回到查看(刀片)文件,请尝试以下代码:
class BaseController extends Controller
{
public function theme_options() {
// Set number of columns
$footer_cols = DB::table('theme_settings')->where('id','=','200')->value('setting_value');
$widget_width = 12 / $footer_cols;
// Footer Settings
$data = array(
'widget_width' => $widget_width
);
return view('your_view_name')->with($data);
}
}
答案 1 :(得分:0)
为视图数据共享创建新的提供程序
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ViewComposerServiceProvider extends ServiceProvider
{
public function boot()
{
$footer_cols = DB::table('theme_settings')->where('id','=','200')->value('setting_value');
return view()->composer('*',function($view){
$view->with('pages',12 / $footer_cols);
});
}
public function register()
{
}
}
不要忘记在ViewComposerServiceProvider
文件中将providers
添加到config/app.php
数组
答案 2 :(得分:0)
有时,您可能需要与应用程序呈现的所有视图共享一段数据。您可以使用view facade的共享方法执行此操作。
在AppServiceProvider
启动方法中添加以下代码
// Set number of columns
$footer_cols = DB::table('theme_settings')
->where('id', '=', '200')
->value('setting_value');
$widget_width = 12 / $footer_cols;
View::share('widget_width', $widget_width);
以便变量widget_width
可用于您的所有观看次数。
P.S:确保进行必要的导入,如
use Illuminate\Support\Facades\View;
use DB;