Запрос, работающий дома, но не работающий на другой странице (Laravel 5.4) - PullRequest
0 голосов
/ 12 мая 2018

У меня есть 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 и listpost.blade

Запрос в службу

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

Я исправил это! Я забыл @extends('news.master')

В master.blade.php

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

В listpost.blade.php

@extends('news.master')
@section('content')
@endsection
0 голосов
/ 12 мая 2018

Я предполагаю, что оба лезвия имеют разные значения для 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');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...