Как я могу получить ресурс магазина маршрута Laravel - PullRequest
0 голосов
/ 01 декабря 2018

My Add код формы

<form method="post" name="m_form" action="{{url('post')}}">
    <input type="hidden" name="_method" value="POST">
    <input type="hidden" name="_token" value="zL9O2D3H70fkSrt9vziwbkf2bHBqi6O6NKk1QgQK">
    <input type="text" required="" name="name" id="name" class="form-control m-input" >
    <input type="submit" name="submit" value="submit">
<form>

Мой маршрут

Route::resource('post', 'PostController');

Middleware

public function handle($request, Closure $next)
{
    $nextRequest = $next($request);
    dd($request->route()->getAction());
}

Сейчас в Middleware $ request-> route ()-> getAction () is null

Теперь я хочу, чтобы имя контроллера и имя метода динамически здесь, все остальные маршруты работали нормально, но маршрут магазина не найден

Можете ли вы указать мне, где я могусделать ошибку?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Я использовал Laravel Log Class для записи значений в файл журнала (/storage/logs/filename.log) для просмотра вывода.

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Route;

class CheckControllerAction
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $action = Route::current()->action;
        $route = $action['uses'];
        $controllerAction = explode("@", $route);

        Log::info(class_basename($controllerAction[0]));
        Log::info($controllerAction[1]);
        Log::info(class_basename(Route::current()->controller));
        return $next($request);
    }
}

Вывод в файле журнала:

[2018-12-04 21:34:41] local.INFO: PostController  
[2018-12-04 21:34:41] local.INFO: create  
[2018-12-04 21:34:41] local.INFO: PostController  
0 голосов
/ 01 декабря 2018

Я думаю, это то, что вы ищете .....

Как получить имя запрашиваемого контроллера и действие в промежуточном программном обеспечении Laravel

И просток вашему сведению, вы не должны устанавливать _token с использованием жесткого кода, как в вашем примере, но с помощью Form :: open (), поскольку это устанавливает _token для вас при каждой загрузке страницы.Это гораздо более безопасный способ гарантировать, что _token не может быть принудительно установлен, в отличие от вашей версии с жестким кодом, которая, очевидно, будет устанавливать _token одинаковое значение для всех пользователей в любое время.

...