2016-12-02 4 views
1

Я хочу включить представление так: @include (user.myview), но в этом представлении мне нужна логика UserController. Поэтому я подумал о вызове маршрута: @include (route ('user.route')), который вызывает функцию Controller и возвращает представление, но это не работает. Любые идеи, как справиться с этой проблемой?Laravel include view

+0

Вы можете уточнить свой вопрос немного больше? Почему и какую логику контроллера вам нужно позвонить из вашего представления? View не должен запускать логику контроллера. Ваши контроллеры должны возвращать представление и в точке, которая должна быть для контроллера. – ArranJacques

+0

это то же самое, что и все. когда вы передаете что-то своему мнению, ну, вы можете включить то, что хотите в это представление, и все параметры будут доступны для этого файла include. – GabMic

+0

View1 отображает данные пользователя. Часть этого userdata - это html-метка, которая позволяет рассчитать количество заказов, которые пользователь сделал. Этот счет должен отображаться другим View2 (и @include), так как я показываю этот счет более одного раза. Но проблема в том, что я не знаю, как заполнить это второе представление логикой из UserController относительно количества заказов. Если бы я назвал это представление по маршруту, я бы просто позволил ему запустить функцию, которая возвращает представление, но это не работает. –

ответ

1

Вам необходимо создать view composer и использовать его для получения данных.

Просмотреть составы являются обратными вызовами или методами класса, вызываемыми при визуализации представления. Если у вас есть данные, которые вы хотите привязать к представлению каждый раз при визуализации представления, композитор представления может помочь вам организовать эту логику в одном месте.

0

Просто добавьте ссылку, которую вы видите, и включите в нужное вам место. Ссылка будет иметь маршрут.

При нажатии на ссылку можно вызвать метод контроллера. например show_link.blade.php

В вашем show_link.blade.php: <a href= {{route('route-name')}} > Click here</a>.

Этот маршрут вызовет метод через.

Route::get('/call/method', '[email protected]_method_name')->name('route-name');

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

public function your_method_name() { return "show what you want to"; }