schel4ok
Новичок
друзья, помогите решить проблемку
у меня ларавел 5.3
при отправке POST реквеста со страницы calculator всё время получаю ошибку 500
в vue компоненте я делаю http запрос вот так
в результате на сервер отправляется такой массив
и потом ларавел ругается, что типа вместо объекта я ему подсовываю массив, а как отправить обьект я не знаю
ErrorException in CalculationDone.php line 19: Argument 1 passed to App\Notifications\CalculationDone::__construct() must be an instance of Illuminate\Http\Request, array given, called in D:\OpenServer\domains\boiler.new\app\Http\Controllers\Frontend\FrontendController.php on line 29 and defined
routes/web.php
app\Http\Controllers\Frontend\FrontendController.php
App\Notifications\CalculationDone.php
у меня ларавел 5.3
при отправке POST реквеста со страницы calculator всё время получаю ошибку 500
в vue компоненте я делаю http запрос вот так
Код:
methods: {
submit:function(){
var formData = new FormData();
formData.append('ShowerType', this.ShowerTypeSelect.text);
formData.append('Glass', this.GlassTypeSelect.text);
formData.append('Dekor', this.DekorSelect.text);
this.$http.post('/calculator', formData)
},
Код:
-----------------------------100693211531850
Content-Disposition: form-data; name="ShowerType"
Выберите тип кабины...
-----------------------------100693211531850
Content-Disposition: form-data; name="Glass"
Выберите тип стекла...
-----------------------------100693211531850
Content-Disposition: form-data; name="Dekor"
Выберите тип рисунка...
ErrorException in CalculationDone.php line 19: Argument 1 passed to App\Notifications\CalculationDone::__construct() must be an instance of Illuminate\Http\Request, array given, called in D:\OpenServer\domains\boiler.new\app\Http\Controllers\Frontend\FrontendController.php on line 29 and defined
routes/web.php
Код:
Route::get('calculator', 'FrontendController@calculator')->name('calculator');
Route::post('calculator', 'FrontendController@calculated')->name('calculated');
Код:
namespace App\Http\Controllers\Frontend;
use App\Notifications\CalculationDone;
use App\Models\Access\User\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class FrontendController extends Controller
{
public function index()
{
return view('frontend.index');
}
public function calculator()
{
return view('frontend.calculator');
}
public function calculated(Request $request)
{
$result = $request->all();
Notification::send(User::findOrFail(4), new CalculationDone($result));
}
}
App\Notifications\CalculationDone.php
Код:
namespace App\Notifications;
use Illuminate\Http\Request;
use App\Models\Access\User\User;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
class CalculationDone extends Notification
{
use Queueable;
protected $request;
public function __construct(Request $request)
{
$this->request = $request->all();
}
public function via($notifiable)
{
return ['mail'];
}
public function toMail($notifiable)
{
return (new MailMessage)
->subject('письмо с сайта')
->from('[email protected]')
->replyto('[email protected]')
->line('Имя: '. $this->request['ShowerType'])
->line('Телефон: '. $this->request['Glass'])
->line('Желательное время звонка: '. $this->request['Dekor'])
->line('Ваше сообщение отправлено. В ближайшее время мы с вами свяжемся.');
}