Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Конечно же, я новичок в Laravel
Есть необходимость вывода в каждом шаблоне проекта бокового меню с блоками а-ля последние новости, реклама.
Как реализовать эту задачу? Создавать отдельную модель для этого и из нее брать данные и передавать их в шаблон?
Но еще один нюанс. Есть страница с текущей публикацией, например. И в этот сайдбар, кроме описанного выше, нужно впихнуть информацию про автора публикации. Как быть в этом случае?
Не в сети
layouts, sections http://laravel.com/docs/4.2/templates#blade-templating
Не в сети
не совсем же то Нужно изначально получить эти самые записи для вывода в секции.
Как мне видется алгоритм:
1. Создаю модель для получения данных в виджет
2. СОздаю шаблон для виджета
3. Подключаю его в основной шаблон
Но как быть со второй частью вопроса? Как мне поймать по какому роуту зашел пользователь, чтобы вывесит дополнительные виджеты?
Не в сети
- не совсем же то Нужно изначально получить эти самые записи для вывода в секции.
- Как мне видется алгоритм:
- 1. Создаю модель для получения данных в виджет
- 2. СОздаю шаблон для виджета
- 3. Подключаю его в основной шаблон
- Но как быть со второй частью вопроса? Как мне поймать по какому роуту зашел пользователь, чтобы вывесит дополнительные виджеты?
App::before(function($request)
{
View::share('myMenuInDataBase',DB::table('menu')->get());
});
Route::get('/side_bar_on',function() {
return View::make('one_column.blade.php');
});
Route::get('/side_bar_off',function() {
return View::make('two_column.blade.php');
});
/app/view/one_column.blade.php
<div class="container">
Content
</div>
<div class="right_side_bar">
@include('sidebar')
</div>
/app/view/two_column.blade.php
<div class="container">
Content
</div>
@foreach($myMenuInDataBase as $item)
<li>{{$item->name}}</li>
@endforeach
Изменено Quiss (28.01.2015 20:27:25)
Не в сети
layout.blade.php
<html>
<head>
<title>
@section('meta_title')
сайт.ру
@show
</title>
</head>
<body>
<div class="content">
@section('content')
@show
</div>
<div class="sidebar">
@section('sidebar')
@section('post_author')
@show
@show
</div>
<div class="footer">
@section('footer')
@show
</div>
</body>
</html>
post.blade.php
@extends('layout')
@section('content')
<div class="post">
<h1>{{ $post->title }}</h1>
<div class="story">
{{ $post->story }}
</div>
</div>
@stop
@section('sidebar')
@parent
Тут можно что-то добавить в сайдбар
@stop
@section('post_author')
<div class="sidebar_post_author">
Опубликовал {{ $post->user->name }}
</div>
@stop
@section('meta_title')
{{ $post->title }} /
@parent
@stop
Роут
Route::get('post/{id}', 'PostController@showPost');
Контроллер
public function showPost($id)
{
return View::make('post.blade.php')->with('post', $post)->with('smth', $smth);
}
Изменено Wide (29.01.2015 15:13:52)
Не в сети
Спасибо всем за подсказки!
Не в сети
Страницы 1