[英]laravel 5.4 add new element to basecontroller array
i have a question about dynamic breadcrumbs in laravel 5.4 . 我对laravel 5.4中的动态面包屑有疑问。 i don't want use package for this so my question is that: 我不想为此使用包,所以我的问题是:
i write a basecontroller like this 我写这样的基本控制器
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class BaseController extends Controller
{
private $breadcrumbs;
function __construct()
{
$this->breadcrumbs[] = [
'title' => 'Home',
'type' => 'route',
'href' => 'admin.dashboard'
];
view()->share('breadcrumbs', $this->breadcrumbs);
}
}
and i use it in child controller like this 我在像这样的子控制器中使用它
<?php
namespace App\Http\Controllers\Admin\Management;
use Illuminate\Http\Request;
use App\Http\Controllers\Admin\BaseController;
class PackageController extends BaseController
{
function __construct()
{
parent::__construct();
}
public function getList()
{
$this->breadcrumbs[] = [
'title' => 'Packages',
'type' => 'route',
'href' => 'admin.package.list',
'class' => 'active'
];
return view('admin.layouts.package.list');
}
i want use this breadcrumbs variable in breadcrumbs.blade.php partial in master page 我想在主页面中的Breadcrumbs.blade.php部分中使用此面包屑变量
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
@include('admin.layouts.shared.breadcrumb')
</body>
</html>
breadcrumbs partial view renders an ul list has multiple li>a tags. 面包屑局部视图呈现一个具有多个li> a标签的ul列表。 but this is not working now. 但这现在不起作用。
1 . 1。 why it doesn't work ? 为什么它不起作用?
2 . 2。 how can add a new breadcrumb array element to breadcrumb variable in basecontroller and render full parts with added last element ? 如何在basecontroller中的面包屑变量中添加新的面包屑数组元素并使用添加的last元素呈现完整部分?
please help me ? 请帮我 ?
( sorry my bad english ) (对不起,我英语不好)
The parent constructor runs before the getList()
function. 父构造函数在 getList()
函数之前运行。 This means that the following has already run: 这意味着以下内容已经运行:
view()->share('breadcrumbs', $this->breadcrumbs);
I'm pretty sure it makes a copy of the breadcrumbs array when you share it, not leaving a reference to it so you can modify it as you go. 我很确定,当您共享它时,它会复制面包屑数组,而不会留下对其的引用,因此您可以随时进行修改。
Why not make a method in the base controller like: 为什么不在基本控制器中创建如下方法:
public function setBreadcrumbs($breadcrumbs)
{
$this->breadcrumbs = $breadcrumbs;
view()->share('breadcrumbs', $this->breadcrumbs);
}
And then in getList()
call it like this: 然后在getList()
调用它:
$this->setBreadcrumbs([
'title' => 'Packages',
'type' => 'route',
'href' => 'admin.package.list',
'class' => 'active'
]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.