Model view controller 使用Laravel 5.5登录后传递共享变量
我创建了一个方法,以便与应用程序的所有视图共享数据 为此,我创建了一个类EntityRepository,在其中存储我希望与所有视图共享的数据 这些数据显示在布局中,而不是视图中。Model view controller 使用Laravel 5.5登录后传递共享变量,model-view-controller,laravel-5.5,Model View Controller,Laravel 5.5,我创建了一个方法,以便与应用程序的所有视图共享数据 为此,我创建了一个类EntityRepository,在其中存储我希望与所有视图共享的数据 这些数据显示在布局中,而不是视图中。 class EntityRepository { use App\Valuechain; public function getEntities() { $vcs = Valuechain::select('valuechains.id', 'lang_valuechain.
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'));
}
在这种特殊情况下,它工作正常,我没有问题。我的问题涉及登录后的登录页
在登录控制器中:
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;
}
}
我这样定义了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'));
}
无论我报税多少,我都有错误信息
未定义变量:EntitiesList(视图:C:\wamp64\www\network dev\resources\views\admin\partials\header hor menu.blade.php)我最终通过更改路由解决了这个问题:
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';
致:
最后:
protected function authenticated(Request $request, $user)
{
$langCount = Lang::count();
if ($langCount == 0) {
return redirect()->to('admin/setup/lang');
}
else {
return redirect()->to('admin/main');
}
}