Я делаю веб-сайт, где меню управляется администратором, мой вопрос заключается в том, как установить этот элемент для отображения на всех страницах.
Сначала я делал запрос меню во всех действиях контроллера, но я хотел бы оптимизировать это, просто не знаю как.
Мой контроллер.
<?php
namespace App\Http\Controllers;
use App\Categorias;
use Illuminate\Http\Request;
class FrontendController extends Controller {
public $template = 'default';
// Retorna Navegação
public function retornaNavegacao(){
$sql = Categorias::where([
['exibir', '=', 1], ['publicado', '=', 1]
])
->get();
return $sql;
}
// Página 'Categorias'
public function categoria(){
return view('frontend.'.$this->template.'.categorias.index',
array(
'mainMenu' => $this->retornaNavegacao(),
)
);
}
// Página 'Produtos'
public function produto(){
return view('frontend.'.$this->template.'.produtos.index',
array(
'mainMenu' => $this->retornaNavegacao(),
)
);
}
// Página 'Contato'
public function contato(){
return view('frontend.'.$this->template.'.contato.index',
array(
'mainMenu' => $this->retornaNavegacao(),
)
);
}
}
Функция retornaNavegacao () запрашивает только базу данных и возвращает все зарегистрированные меню (существует связь для поиска всех подкатегорий).
Однако я должен повторять код меню во всех действиях контроллера, я думаю, что он может иметь более разумный способ не повторять этот код во всех действиях.