我是Laravel框架的初学者。我有一个CategoryController
和allCategory.blade.php
视图。我有一个welcome.blade.php
视图。现在我希望在welcome.blade.php
中插入所有类别值view.When我尝试了它的节目未定义的变量:$category
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 :(得分:1)
好的,我有一个compact()
函数的解决方案。在我WelcomeController
我只查询所有类别数据并使用compact()
函数。compact()
function create来自变量及其值的数组。因此,我可以查询不同的表数据并使用compact()
,以便我可以使用welcome
循环查看foreach()
刀片中的所有数据。类似于的是:
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}} <span class="item-numbers">(2,342)</span></a></li>
</ul>
@endforeach
希望它会对某人有所帮助。
答案 1 :(得分:0)
在第一个视图中加入您的辅助视图,如下所示:
@include('welcome', ['categories' => $categories])
使用welcome.blade.php
访问$categories
中变量的值,如果这不起作用,则表示您正在做其他错误,因为这是正确的做法
答案 2 :(得分:0)
$categories
必须住在view composer
。
例如,将其添加到您的AppServiceProvider
:
view()->composer('welcome.blade.php', function($view)
{
$categories = Category::all();
$view->with('categories', $categories);
});
现在$categories
可用于所有观看次数和部分观看次数。
您当然可以将视图编辑器提取到专用服务提供商。
答案 3 :(得分:-1)
如果将数据正确传递给视图,则应该没问题。最基本的方法之一是这样的:
$category = []; // Some array
return View::make('welcome')->with('category', $category);