Никогда не делайте ничего, кроме циклического просмотра ваших данных в слое просмотра. В основном нормальный шаблон MVC в laravel может быть примерно таким:
Все начинается со слоя маршрутизации (который, кстати, просто фантастический в laravel).
Использование замыканий
Route::get('/home', function()
{
//Here data is an array, normally you would fetch data
//from your database here and pass it to the View.
$data = array('this', 'is', 'my', 'data-array');
return View::make('my.view')->with(compact('data');
});
Использование контроллеров (и метода контроллера)
//the same route is bound to a controller method
Route::get('/home','HomeController@myFunction');
Контроллер для вышеуказанного может выглядеть примерно так:
<?php
class HomeController extends BaseController {
//The function you call from your route
public function myFunction()
{
$data = array('this', 'is', 'my', 'data-array');
return View::make('my.view')->with(compact('data');
}
}
В приведенном выше примере просто показан VC в MVC, но обычно вы передаете данные из своих моделей таким же образом.
Вот быстрый:
Использование модели в контроллерах
public function myFunction($user)
{
$userdata = User::find($user)->orderBy('firstname', 'desc');
$infodata = Event::find(1)->course;
return View::make('my.view')->with(compact('data', 'infodata');
}
Итак, идея в том, что laravel позволяет вам делать что-то несколькими способами. Если у вас есть второстепенное приложение и вы уверены, что можете обойтись без контроллеров, вы можете пропустить контроллер и оставить все на своем уровне маршрутизации.
Однако для большинства приложений контроллеры необходимы для управления потоком данных в приложении.
Если вы новичок в MVC, вам следует ознакомиться с некоторыми материалами по этому вопросу.
ИЗМЕНИТЬ:
Ага! Итак, вы хотели поделиться некоторыми данными во всех ваших представлениях! Ну это просто. Поскольку все ваши контроллеры расширяют BaseController, вы можете просто передать туда данные. Вот так:
class BaseController extends Controller {
public function __construct()
{
$data = array('alot', 'of', 'data');
return View::share('data', $data);
}
}
Теперь переменная данных доступна во всех представлениях.
PS. Фильтры предназначены для фильтрации вещей, например, для проверки того, что определенные вещи «в порядке». Это может включать в себя проверку авторизованных пользователей, отправку форм и т. д.
person
stormpat
schedule
18.10.2013