gpt4 book ai didi

php - 在 Laravel 中获取 MethodNotAllowedHttpException 错误

转载 作者:行者123 更新时间:2023-11-28 23:19:15 24 4
gpt4 key购买 nike

我正在学习 Laravel。我正在尝试创建一个在汽车表中列出汽车的表单,如果单击,则发送到另一个基于数据库查询的表单,该查询返回所选汽车的数据(由 $modelesc 标识)。

此表单将数据发送到“订单”表。使用我现在拥有的代码,我无法在订单表上发布订单。它收到消息:“RouteCollection.php 第 233 行中的 MethodNotAllowedHttpException:”

这是代码

网页.php

Route::get('catalog', 'carController@catalog');
Route::get('orders/', 'CarController@orders')->name('orders');

汽车 Controller

function catalog() {
$cars = DB::table('cars')->get();
return view('catalog', compact('cars'));
}

function orders(Request $request) {
$modelesc = $request->modelesc;
$cars = DB::table('cars')->where('Model', $modelesc)->get();
$colours = DB::table('colours')->get()->pluck('Colour');
return view('orders', compact('cars', 'colours'));
}

目录.blade.php

@foreach($cars as $car)
{!! Form::open(array('action' => 'CarController@orders', 'method' => 'GET')) !!}
{!! Form::hidden('$modelesc', $car->Model) !!}
{!! Form::submit($car->Model) !!}
{!! Form::close() !!}
@endforeach

Orders.blade.php

@foreach($cars as $car)
{!! Form::open(['method' => 'POST']) !!}
<a href="{{route('orders', $car->Model) }}">{{ $car->Model }}</a>
{!! Form::hidden('users_id', Auth::user()->id) !!}
{!! Form::hidden('Fabrication_date', date('Y-m-d')) !!}
{!! Form::select('Colour_id', $colours) !!}
{!! Form::hidden('Order_status_id', '1') !!}
{!! Form::submit('Ok') !!}
{!! Form::close() !!}
@endforeach

订单表结构如下:

$table->increments('id');
$table->integer('users_id')->unsigned();
$table->foreign('users_id')->references('id')->on('users')->onDelete('cascade')->onUpdate('cascade');
$table->string('Model');
$table->date('Fabrication_date');
$table->integer('Colour_id')->unsigned();
$table->foreign('Colour_id')->references('id')->on('colours')->onDelete('cascade')->onUpdate('cascade');
$table->integer('Order_status_id')->unsigned();
$table->foreign('Order_status_id')->references('id')->on('order_status')->onDelete('cascade')->onUpdate('cascade');
$table->timestamps();

最佳答案

更新您的订单功能

public function orders(Request $request) 
{
$modelesc = $request->modelesc;
$cars = DB::table('cars')->where('Model', $modelesc)->get();
...
}

目录.blade.php

Form::hidden('modelesc', $car->Model)

value request->modelesc 将读取您的隐藏输入你最终会得到一个看起来像这样的 URL http://mysite.dev/orders?modelesc=toyota .

一些建议

您使用表单仅提交隐藏的输入。没有用户输入。在我看来,使用简单的 anchor 会更容易 <a></a> .

@foreach($cars as $car)
<a href="/orders?{{ $car->Model }}">{{ $car->Model }}</a>
@endforeach

同样的结果。

使用漂亮的 URL 让它变得漂亮。改变你的路线定义

Route::get('orders/{modelesc}', 'CarController@orders')->name('orders');

和 anchor

<a href="/orders/{{ $car->Model }}">{{ $car->Model }}</a>

使用命名路由

<a href="{{ route('orders', $car->Model) }}">{{ $car->Model }}</a>

和函数

public function orders($modelesc) 
{
$cars = DB::table('cars')->where('Model', $modelesc)->get();
...
}

关于php - 在 Laravel 中获取 MethodNotAllowedHttpException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42520594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com