2015-05-22 4 views
6

В настоящее время мы используем структуру Laravel на несколько проектов, но один вопрос, который мы продолжаем работать, в которую я не люблю, является следующим вопросом:Laravel шаблон лопатки специального код

Допустит, у вас есть домашняя страница и содержание страница

HomepageController имеет весь Вебсайт конкретного PHP код ContentpageController имеет все Содержание конкретного PHP код

мы имеем app.blade.php, что делает

@yield('page') 

HomepageController называет вид homepage.blade.php, содержащий

@extends('app') 

@section('page') 
    Some HTML part 
    @include('parts.top_5') 
@endsection 

ContentController вызовы на вид content.blade.php, содержащий

@extends('app') 

@section('page') 
    Some different HTML part 
    @include('parts.top_5') 
@endsection 

Здесь вы можете увидеть обе страницы включают parts.top_5, верхняя 5 требуется некоторые конкретные переменные для вывода top5. Теперь проблема в том, что мы в настоящее время копируем код для переменных top5 как в контроллерах, так и в групповом промежуточном программном обеспечении, но есть ли лучшее решение для генерации некоторых конкретных переменных кликов при включении этой части? Настолько немного похоже на запуск функции контроллера при загрузке шаблона клинка?

Я искал интернет, но, похоже, не нашел никого с тем же вопросом. Надеюсь, кто-то может помочь мне в этом вопросе!

+0

Я не так хорошо с английским, но вы имеете в виду вы хотите передать данные с помощью @include если так попробовать этот @include («View.Name» , ['data' => 'yourdata'])? – xenish

ответ

2

Вы можете добавить эту привязку к AppServiceProvider

(или любые пользовательские ServiceProvider Вы хотите)

так:

public function boot() 
{ 
    $view->composer('parts.top_5', function($view) { 
     $view->with('any_data' => 'You want'); 
    }) 
} 

Таким образом, в любое время Laravel составит parts.top_5 вид этот метод закрытия ВОЛЮ быть запущенным.

И документации это здесь: http://laravel.com/docs/5.0/views#view-composers

+0

Просто Googled, когда вы не опубликовали ссылку, но нашли ту же страницу, теперь я вижу, что Laraval добавила это в документацию по версии v5.0, очень здорово попробовать это, похоже, именно то, что мне нужно. – RemcoDN

 Смежные вопросы

  • Нет связанных вопросов^_^