Вывод на один и тот же вид с разных контроллеров - PullRequest
3 голосов
/ 11 мая 2019

Возможно ли выводить на один и тот же вид несколько контроллеров. У меня есть один вид под названием «приборная панель». У меня есть две переменные: $users и $friends. Я хочу отправить данные в эти переменные с разных контроллеров. Нужно ли добавлять два контроллера на один и тот же маршрут?

Вид:

<div class="panel friendlist" id="friendlist">
            <div class="panel-heading"><h3 class="panel-title">Result List</h3>
            </div>
            <div class="panel-body">
                <ul class="list-group">
                    @foreach($friends as $friend)
                    <li class="list-group-item"><a href="">{{ $friend->username }}</a>
                    </li>
                    @endforeach
                </ul>
            </div>
        </div>
    </section>
    <section class="row posts">
        <div class="col-md-6 col-md-3-offset">
            <header><h3>other posts</h3></header>
            @foreach($posts as $post)
            <article class="post">
                <p>{{ $post->content }}</p>
                <div class="info">Posted by {{ $post->user->username }} on {{ $post->created_at }}</div>

Почтовый контроллер:

public function getDashboard()
    {
        $posts = Post::orderBy('created_at','desc')->get();
        return view('dashboard',['posts' => $posts]);
    }

Контроллер друга:

public function getFriends()
    {
        $friends = Auth::user()->friends()->where('status','accepted')->get();

        return view('dashboard',['friends' => $friends]);
    }

Текущий маршрут:

Route::get('/dashboard',[
        'uses' => 'PostController@getDashboard',
        'as' => 'dashboard',
        'middleware' => 'auth'
    ]);

Ответы [ 2 ]

0 голосов
/ 11 мая 2019

Простая вещь, которую вы можете сделать, это

  1. Сначала создайте одну модель, а в этой модели создайте две функции для этих двух значений переменных.

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

0 голосов
/ 11 мая 2019

@ Amartya Barua, вы можете использовать view composer, чтобы разделить некоторые переменные с несколькими представлениями https://laravel.com/docs/5.8/views, Или вы можете создать BaseService, записать многоразовые геттеры и внедрить BaseService на ваш контроллер, таким образом вы сможете получить доступ к Требуются получатели к вашему контроллеру, если есть вопросы, прокомментируйте мой ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...