2017-05-11 20 views
0

laravel 5.4の動的ブレッドクラムに関する質問があります。私の質問は、ということですので、私はこのために使用するパッケージを望んでいない:laravel 5.4新しい要素をベースコントローラ配列に追加する

は、私はこの

<?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); 
    } 
} 

ようbasecontrollerを書いて、私は私が欲しいこの

<?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'); 
    } 

のような子コントローラで使用しますbreadcrumbs.blade.phpでこのbreadcrumbs変数をマスターページの部分的に使用してください。

<!DOCTYPE html> 
<html lang="en"> 
<head> 
</head> 
<body> 
    @include('admin.layouts.shared.breadcrumb') 
</body> 
</html> 

ブレッドクラム部分図は、ulリストに複数のli> aタグを表示します。 これは現在動作していません。

1。なぜそれは動作しません?

2。どのように新しいブレッドクラム配列要素をbasecontrollerのブレッドクラム変数に追加して、最後の要素が追加された完全な部分をレンダリングできますか?

どうすればよろしいですか?

(すみません私の悪い英語)

答えて

1

親のコンストラクタはgetList()機能を実行します。

view()->share('breadcrumbs', $this->breadcrumbs); 

を、私はあなたがそれを共有する場合、それはあなたが行くようにあなたがそれを修正することができますので、それへの参照を残していない、パン粉の配列のコピーを作成しますかなり確信している:これは、次のようにすでに実行していることを意味します。

のようにベースコントローラにメソッドをしない理由:

public function setBreadcrumbs($breadcrumbs) 
{ 
    $this->breadcrumbs = $breadcrumbs; 
    view()->share('breadcrumbs', $this->breadcrumbs); 
} 

そしてgetList()でこのようにそれを呼び出す:

$this->setBreadcrumbs([ 
    'title' => 'Packages', 
    'type' => 'route', 
    'href' => 'admin.package.list', 
    'class' => 'active' 
]); 
+1

そんなにジェレミーありがとうございました。どういたしまして :) – Hanik

関連する問題