我创建了一个方法,以便与我的应用程序的所有视图共享数据。
为此,我创建了一个EntityRepository类,其中我存储了我想与所有视图共享的数据。
这些数据显示在布局中而不是视图中。
class EntityRepository
{
use App\Valuechain;
public function getEntities()
{
$vcs = Valuechain::select('valuechains.id', 'lang_valuechain.vcname', 'lang_valuechain.vcshortname')
->join('lang_valuechain', 'valuechains.id', '=', 'lang_valuechain.valuechain_id')
->join('langs', 'lang_valuechain.lang_id', '=', 'langs.id')
->where('langs.isMainlanguage', '=', '1')
->whereNull('valuechains.deleted_at')
->get();
return $vcs;
}
}
当我想将数据发送到方法时,我只需调用getEntities()方法...例如:
public function index(EntityRepository $vcs)
{
$entitiesLists = $vcs->getEntities();
// My code here ...
return view('admin.pages.maps.sectors.index', compact('entitiesLists', 'myVars'));
}
在这个特定的情况下它工作正常,我没有问题。我的问题涉及登录后的登录页面。
在loginController中:
我用这种方式定义了redirectTo变量:
public $redirectTo = '/admin/home';
由于特定原因,我必须覆盖LoginController中的authentificated()方法,以检查我的应用程序是否已配置或需要设置...
protected function authenticated(Request $request, $user)
{
$langCount = Lang::count();
if ($langCount == 0) {
return redirect()->to('admin/setup/lang');
}
else {
//return redirect()->to('admin/home');
return redirect()->action('BackOffice\StatsController@index');
}
}
有关的index()方法是将变量发送到视图:
public function index(EntityRepository $vcs)
{
$entitiesLists = $vcs->getEntities();
return view('admin.home', compact('entitiesLists'));
}
无论我做什么回报我都有错误信息......
未定义的变量:entitiesLists(查看:C:\ wamp64 \ www \ network-dev \ resources \ views \ admin \ partials \ header-hor-menu.blade.php)
答案 0 :(得分:0)
我终于通过改变我的路线解决了这个问题:
Route::group(['prefix' => 'admin'], function () {
Route::get('/', function (){
$checkAuth = Auth::guard('admin')->user();
if ($checkAuth) {
return redirect('/admin/main');
}
else {
return redirect('admin/login');
}
});
});
在我的loginController中,我改变了:
public $redirectTo = '/admin/home';
到:
public $redirectTo = '/admin/main';
最后:
protected function authenticated(Request $request, $user)
{
$langCount = Lang::count();
if ($langCount == 0) {
return redirect()->to('admin/setup/lang');
}
else {
return redirect()->to('admin/main');
}
}