2016-06-19 69 views
1

我初學Laravel framework.I有CategoryControllerallCategory.blade.php view.I有welcome.blade.php view.Now我想在welcome.blade.php view.When我想它的節目未定義的變量插入所有類別值:$category如何在Laravel中將變量從一個視圖包含到另一個視圖?

allCategory.blade.php:

@if(count($categories)) 
<table id="example2" class="table table-bordered table-hover" width="65%"> 
    <thead> 
     <tr> 
      <th># Index</th> 
      <th>Category Name</th> 
      <th>Action</th> 
     </tr> 
    </thead> 
    <tbody> 
    @foreach($categories as $category) 
     <tr> 
      <td>{{$category->sortInd}}</td> 
      <td>{{$category->categoryName}}</td> 
      <td><a class="btn btn-info badge bg-light-blue" href="{{route('editCategory',$category->id)}}">Edit</a> | <a class="btn btn-danger badge bg-red" href="{{route('deleteCategory',$category->id)}}">Delete</a></td> 
     </tr> 
    @endforeach 
    </tbody> 
</table> 
{{$categories->links()}} 
@endif 

CategoryController:

public function index() 
{ 
    $categories = Category::where('id', '>=', 1)->paginate(10);    
    return view('jobs.allCategory', ['categories' => $categories]); 
} 

我想要這種solution。但它不起作用。

現在我想顯示類別值相同allCategory.blade.php。如何可以從一個視圖到另一個視圖傳遞變量值?先謝謝了。

N.B:如果你需要的所有文件,請讓我知道。

+0

你是如何在你的控制器中加載這個視圖的?包括你的控制器的片段 – geckob

+0

@geckob請see.I已更新我的問題。我可以看到完美的'allCategory.blade.php'視圖,但我怎麼能看到'welcome.blade.php視圖'? –

+0

如何在'allCategory'視圖中加載'welcome'視圖? 「受歡迎」會成爲你的局部看法嗎? – geckob

回答

1

好吧,我已經有了一個解決方案compact()函數。在我的WelcomeController我只是查詢所有類別的數據和使用compact()函數。 compact()函數創建從一個變量數組和它們的值。所以我可以查詢不同的表數據,並使用compact(),這樣我可以在welcome葉片查看所有數據與foreach() loop.Something這樣的:

WelcomeController:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Category; 
use App\Job; 
use App\Http\Requests; 

class WelcomeController extends Controller 
{ 
    public function index() 
    { 
     $jobs = Job::all(); 
     $categories = Category::all(); 
     return view("welcome",compact('categories','jobs')); 
    } 

檢索welcome.blade中的值。php:

@foreach($categories as $category) 
    <ul class="trends"> 
     <li><a href="#">{{ $category->categoryName}} &nbsp;<span class="item-numbers">(2,342)</span></a></li> 
    </ul> 
@endforeach 

希望它能幫助別人。

-1

如果您正確地將數據傳遞給視圖,則應該沒問題。其中一個最基本的方法是這樣的:

​​
+0

請see.I已更新我的問題。我可以完美看到'allCategory.blade.php'視圖,但我怎麼能看到'welcome.blade.php'查看類別的相同數據? –

0

包括從你的第一個視圖您的輔助視圖中:

@include('welcome', ['categories' => $categories]) 

訪問變量的welcome.blade.php$categories的值,如果這個沒有按沒有工作,你做錯了什麼,因爲它是正確的做法

+0

'allCategory.blade.php'是'master.blade.php'的局部視圖,'welcome.blade.php'是'theme.blade.php'的局部視圖。我在發佈問題,但我有未定義的變量$類別。 –

+0

如果我使用主佈局,是否有任何問題? (master.blade.php和theme.blade.php) –

+0

我測試了這個更復雜的場景,主視圖擴展了另一個視圖,導入子視圖,子視圖導入另一個子視圖,仍然傳遞值。你的問題在其他地方 –

0

$categories必須住在view composer

例如,添加到您的AppServiceProvider

view()->composer('welcome.blade.php', function($view) 
{ 
    $categories = Category::all(); 
    $view->with('categories', $categories); 
}); 

現在$categories將可用於所有視圖和局部視圖。

當然你可以提取的觀點作曲家專門的服務提供商。

+0

如果我添加它,它會拋出一個錯誤。 *語法錯誤,意外的'視圖'(T_STRING),期待函數(T_FUNCTION)* –

+0

請嘗試'查看:: composer'而不是'view() - > composer'。 – user2094178

相關問題