обновить вид с события в Laravel - PullRequest
0 голосов
/ 10 сентября 2018

Мне нужно дождаться (прослушать) запрос от клиента через API-маршрут, который отправит мне некоторый текст, когда запрос получен, мне нужно подтвердить его клиенту и отправить текст в блэйд-вид, а не обратно API клиента.

Я не думаю, что я могу делать все в логике контроллера.

Итак, я начинаю копаться в событии / слушателе и пишу это:

    class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        'App\Events\TextAdded' => [
            'App\Listeners\AddText',
        ],
    ];

тогда

    <?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class TextAdded
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $testo;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($testo)
    {
        //
        $this->testo=$testo;
    }

и

 <?php

    namespace App\Listeners;

    use App\Events\TextAdded;
    use Illuminate\Queue\InteractsWithQueue;

use Illuminate\Contracts\Queue\ShouldQueue;

    class AddText
    {
        /**
         * Create the event listener.
         *
         * @return void
         */
        public function __construct()
        {
            //
        }

        /**
         * Handle the event.
         *
         * @param  TextAdded  $event
         * @return void
         */
        public function handle(TextAdded $event)
        {
            //
            return view('screen')->with('dato',$event->testo);
        }

и из API, файла маршрута, который я вызываю для этого тестового маршрута:

Route::post('/text', 'ScreenController@refresh');

ищет эту функцию на контроллере:

public function refresh(Request $r){      

        $txt='aaaaaaaaaaaa';
        event(new TextAdded($txt));
//tried to send something to view but with no success


        return true;

    }

Забудьте о том, как создается $ txt, это просто тест.

Как мне заставить страницу из моего веб-приложения отразить это событие, мне не так ясно! Должен ли я идти по этому пути или я далеко от решения? Я уверен, что я не могу вернуться к представлению из функции "handle" ... с наилучшими пожеланиями

...