Отправка данных из Ajax на контроллер Laravel.Vuejs - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть маленький момент, который я не понимаю, потому что я новичок в разработке.Я собираю данные из многошаговой формы и хочу обработать все входные данные формы за один запрос ajax на моем контроллере.Я сделал это успешно, но не могу понять, как использовать данные из $request, если это массив из ajax.Я могу использовать, если это $request->input('name'), но в моем случае мне нужно что-то вроде $request->input('firstGrant.issue_date') из-за моего формата данных.Пожалуйста, напишите мне, в какую сторону копать.

Мой метод:

submitCompany() {
 axios.post('/onboarding', {
    name: this.step1.name,
    type: this.step1.type,
    shares_amount: this.step2.shares_amount,
    par_value: this.step2.par_value,
    firstGrant: {
        issue_date: this.step3.firstGrant.issue_date,
        certificate: this.step3.firstGrant.certificate,
        share_price: this.step3.firstGrant.share_price,
        shares_amount: this.step3.firstGrant.shares_amount
    }

})
.then(function (response) {
    console.log(response);
    alert('Information saved!');
})
.catch(function (error) {
    console.log(error);
    alert('Wrong!');
});
}

Мой контроллер:

public function store(Request $request)
{
    $userId = Auth::user()->id;
    $issueDate = $request->input('firstGrant.issue_date'); //How to do it right way?
    $certificate = $request->input('firstGrant.certificate');//How to do it right way? 
    $sharePrice = $request->input('firstGrant.share_price');//How to do it right way?
    $sharesAmount = $request->input('firstGrant.shares_amount');//How to do it right way?

    $equityGrant = EquityGrant::create([
        'user_id' => $userId,
        'share_id' => 91,
        'vesting' => 0,
        'status' => 'active',
        'issue_date' => $issueDate,
        'certificate' => $certificate,
        'share_price' => $sharePrice,
        'shares_amount' => $sharesAmount,
    ]); }

1 Ответ

0 голосов
/ 04 февраля 2019

Возможно, вам придется настроить axios для отправки заголовка вместе с каждым запросом, который заставит Laravel распознать запрос как XHR.Как только это произойдет, операторы $request->input('x.y') должны сработать.

Object.assign(axios.defaults.headers, {
    'X-Requested-With': 'XMLHttpRequest',
});

Если это все еще не работает, вы также можете проверить, правильно ли axios включает CSRF-токен в запросзаголовок.

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