Laravel 5.6 Функция () не существует в route / web.php - PullRequest
0 голосов
/ 26 августа 2018

Это мой код для отправки письма

Route::post('/mail/send', [

    'EmailController@send',

]);

в EmailController это действие отправки

public function send(Request $request)
{    
    $data = $request->all();
    $data['email'] = Input::get('email');
    $data['name'] = Input::get('name');

    $obj = new \stdClass();
    $obj->attr = 'Hello';

    Mail::to("dev@mail.com")->send(new WelcomeEmail($obj));
}

получаю ошибку как Function () does not exist

Ответы [ 3 ]

0 голосов
/ 26 августа 2018

На вашем маршруте ...

Route::post('/mail/send','EmailController@send')->name('send_email');

Внутри вашей HTML-формы добавьте следующий код ...

<form action="{{route('send_email')}}"     method="post">
...
{{csrf_field()}}
0 голосов
/ 26 августа 2018

Метод действия маршрута может быть определен с использованием массива, но не просто обернуть controller@action в массив, вы должны назначить его ключу массива 'uses'.

В вашем примере это должно быть так:

Route::post('/mail/send', [

    'uses' => 'EmailController@send',
    //'middleware' => .... assign a middleware to this route, if needed
]);

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

Если вы просто хотите определить метод обработки маршрута, вы можете просто использовать controller@action в качестве второго параметра Route::post:

Route::post('/mail/send','EmailController@send');
0 голосов
/ 26 августа 2018

в вашем маршруте / web.php

Измените его на

Route::post(‘/mail/send’,‘EmailController@send’);

Обратитесь к документу, чтобы увидеть возможные варианты определения маршрутов

https://laravel.com/docs/5.6/routing

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