查询在家工作但不在其他页面工作(Laravel 5.4)



我有2页:home.blade和listpost.blade

这是菜单导航栏.blade的简单查询:

$query = 类别::在哪里('启用', '=', ENABLE_CATEGORY(;

它在home.blade中工作,但在listpost.blade中不起作用。尽管两个页面都使用@include(导航栏(。


这是HomeController (return viewhome.blade( 和 ListPostController(return view listpost.blade(。两者都使用该查询,但只有HomeController(返回视图home.blade(在工作。在 ListPostController 中,使用 category::all(( 正在工作,但 where(( 不起作用。

为什么以及如何解决这个问题?

Home.blade 和 listpost.blade

服务中的查询

我假设两个刀片都有不同的ENABLE_CATEGORY值。

MVC 框架中控制器的重点是与模型通信并将适当的数据发送到视图(刀片(。您的视图不应与数据库通信并获取数据。

尝试这样的事情:

基本控制器.php

class BaseController extends Controller {
protected $ENABLED = 1;
}

主控制器.php

class HomeController extends BaseController {
public function show()
{
$categories = Category::where('enable', $this->ENABLED);
return view('home')->with('categories');
}
}

列表控制器.php

class ListController extends BaseController {
public function show()
{
$categories = Category::where('enable', $this->ENABLED);
return view('listpost')->with('categories');
}
}

我修好了!我忘了@extends('news.master')

master.blade.php

@include('news.block.navbar')
@yield('content')

listpost.blade.php

@extends('news.master')
@section('content')
@endsection

最新更新