Laravel один route::post для группы запросов

Вакансии в Москве: Ведуший PHP разработчик 110-150к

Тема в разделе "Laravel", создана пользователем schel4ok, 8 фев 2017.

Метки:
  1. schel4ok

    schel4ok Новичок

    Сообщения:
    10
    Adress:
    Country:
    Location on map:
    у меня на нескольких страницах сайта похожие формы, которые можно обрабатывать одной процедурой Notification

    и поэтому я хочу сделать вот так, чтоб не городить кучу Route :: post и к ним кучу дублированного кода в контроллерах

    Код:
    Route::group(['as' => 'calculators.'], function () {
    
       Route::get('calculators',                   'CalculatorController@index')->name('index');
       Route::get('calculators/dveri',             'CalculatorController@dveri')->name('dveri');
       Route::get('calculators/peregorodki',       'CalculatorController@peregorodki')->name('peregorodki');
    ...
    ....
    
    if (Request::isMethod('post')) {
        Route::post(Route::current(), 'CalculatorController@posted')->name('posted');
    }
     
    
    });
    
    но вылезает ошибка
    MethodNotAllowedHttpException in compiled.php line 9091:
     
  2. Adelf

    Adelf Laravel&PhpStorm Команда форума

    Сообщения:
    2.857
    Ваш город:
    Казань
    Adress:
    Country:
    Location on map:
  3. schel4ok

    schel4ok Новичок

    Сообщения:
    10
    Adress:
    Country:
    Location on map:
    пробовал вот так


    Middleware
    Код:
    <?php
    
    namespace App\Http\Middleware;
    
    use Closure;
    use App\Models\Access\User\User;
    use Illuminate\Support\Facades\Notification;
    
    
    class CalculationDone
    {
    
       public function handle($request, Closure $next, $guard = null)
       {
           if(isset($_POST)) {
               Notification::send(User::findOrFail(1), new CalculationDone($request));
           }
           return $next($request);
       }
    }
    
    kernel.php
    Код:
    protected $middleware = [
       \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
       \App\Http\Middleware\CalculationDone::class,
    ];
    

    выдает ошибку
    Код:
    FatalErrorException in ChannelManager.php line 62: Call to undefined method App\Http\Middleware\CalculationDone::via()
       in D:\OpenServer\domains\site.new\vendor\laravel\framework\src\Illuminate\Notifications\ChannelManager.php line 62
    
     
  4. AmdY

    AmdY Пью пиво Команда форума

    Сообщения:
    6.822
    Ваш город:
    Belarus, Minsk
    Adress:
    Country:
    Location on map:
    Вроде так
    PHP:
    Route::post('{url}''PostController@handle')->where('url''.*');
    Но ты лишишься возможности использовать хелперы для построения урлов.
     
  5. schel4ok

    schel4ok Новичок

    Сообщения:
    10
    Adress:
    Country:
    Location on map:
    Что за хелперы для урлов? Я про это пока не слышал