我有2页: home.blade和listpost.blade
这是菜单 navbar.blade :
的简单查询$ query = category :: where(' enable',' =',ENABLE_CATEGORY);
它在 home.blade 中工作,但它不能在 listpost.blade 中工作。虽然两个页面都使用 @include(navbar)。
这是 HomeController(返回视图home.blade)和ListPostController(返回视图listpost.blade)。两者都使用该查询,但只有HomeController(返回视图home.blade)正在工作。在ListPostController中,使用category :: all()工作,但where()不起作用。
为什么以及如何解决这个问题?
答案 0 :(得分:0)
我假设两个刀片的ENABLE_CATEGORY
值都不同。
MVC框架中控制器的目的是与模型通信并将适当的数据发送到视图(刀片)。您的视图不应与数据库通信并获取数据。
尝试这样的事情:
<强> BaseController.php 强>
class BaseController extends Controller {
protected $ENABLED = 1;
}
<强> HomeController.php 强>
class HomeController extends BaseController {
public function show()
{
$categories = Category::where('enable', $this->ENABLED);
return view('home')->with('categories');
}
}
<强> ListController.php 强>
class ListController extends BaseController {
public function show()
{
$categories = Category::where('enable', $this->ENABLED);
return view('listpost')->with('categories');
}
}
答案 1 :(得分:0)
我修复了!我忘记了@extends('news.master')
在master.blade.php
@include('news.block.navbar')
@yield('content')
在listpost.blade.php
@extends('news.master')
@section('content')
@endsection