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

时间:2018-05-12 16:46:10

标签: php laravel laravel-5.4

我有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()不起作用。

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

home.blade and listpost.blade

Query in service

2 个答案:

答案 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