не перенаправил страницу в файл блэйда оплаты в laravel 5.6 - PullRequest
0 голосов
/ 23 октября 2018

в приложении My laravel 5.6 У меня есть следующая маршрутная ссылка на файл payment.blade.php в файлах просмотра платежей,

<a class="btn btn-primary" href="{{route('payments.payment',$vehicles->id)}}" role="button">Go Premium</a>

маршрут для этой страницы:

Route::get('myads/{id}/edit/payment', function(){
    return view('payments.payment');
})->name('payments.payment');

ив payment.blade.file у меня есть следующее действие формы,

<form method="post" action="{{route('payments.payment', ['id' => $vehicles->id])}}">
{{csrf_field()}}

это маршрут выполнения,

Route::get('/add-order/{id?}', 'PController@addOrder')->name('payments.payment'); 

как правило, мне нужно перейти к файлу платежного блэйда по вышеуказанной ссылке и отправить форму, используяЛезвие отправить кнопки.но здесь мое приложение, когда я нажимаю кнопку go premium , чтобы посетить файл оплаты, не перенаправляется на кнопки оплаты.это выполнить действие формы файла платежного блэйда без отображения файла платежного блэйда.как я могу решить эту проблему?

см. Мои отредактированные маршруты и действие формы

Route::get('myads/{id}/edit/payment', function(){
    return view('payments.payment');
})->name('payments.viewpayment');

и

Route::post('/add-order/{id?}', 'PController@addOrder')->name('payments.payment');

и действие формы

<form method="post" action="{{route('payments.viewpayment', ['id' => $vehicles->id])}}">

но теперь появилась эта ошибка,

(1/1) MethodNotAllowedHttpException 

как это исправить?

функция adOder

 public function addOrder(Request $request,$id = null)
{

    DB::table('vehicles')
            ->where('id', $id)
            ->update(['adtype' => '1']);
}

текущие коды

Route::get('myads/{id}/edit/payment', function($vehicle_id){
return view('payments.payment',compact('vehicle_id'));
})->name('payments.payment');

Route::post('/add-order/{id}', 'PController@addOrder')->name('payments.payment');

ссылка на блэйд платежа

<a class="btn btn-primary" href="{{url('myads/'.$vehicles->id.'/edit/payment')}}" role="button">Go Premium</a>

форма действия,

<form method="post" action="{{route('payments.payment', ['id' => $vehicle_id])}}">

и контроллер,

public function addOrder($id = null)
{
    DB::table('vehicles')
            ->where('id', $id)
            ->update(['adtype' => '1']);
}

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Вы можете использовать одно и то же имя для методов get и post для одного и того же представления

В вашем теге привязки

<a class="btn btn-primary" href="{{url('myads/'.$vehicles->id.'/edit/payment')}}" role="button">Go Premium</a>

В вашем файле маршрутов

Route::get('myads/{id}/edit/payment', function($id){
return view('payments.payment',compact('id'));
})->name('payments.payment');

Route::post('/add-order/{id}', 'PController@addOrder')->name('payments.payment'); 

И в вашем теге формы

<form method="post" action="{{route('payments.payment', ['id' => $id])}}">

Вам необходимо перенаправить сообщение об успешном завершении в вашу функцию

public function addOrder($id = null)
{
    DB::table('vehicles')
        ->where('id', $id)
        ->update(['adtype' => '1']);

    return redirect()->back()->with('success', 'Successfully added');
}
0 голосов
/ 23 октября 2018

попробуй с diff name routes

Маршруты

Route::get('myads/{id}/edit/payment', function(){
    return view('payments.payment');
})->name('payments.viewpayment');
Route::post('/add-order/{id?}', 'PController@addOrder')->name('payments.payment'); 

Действие

<a class="btn btn-primary" href="{{route('payments.viewpayment',$vehicles->id)}}" role="button">Go Premium</a>
<form method="post" action="{{route('payments.payment', ['id' => $vehicles->id])}}">
{{csrf_field()}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...