【发布时间】:2021-10-13 17:08:45
【问题描述】:
我想要一个在数据库中存储speaker/book 的订单,但我不使用图表,因此在填写文本字段后,它将被插入到数据库表中,并且只有登录用户才能进行预订。下面我的程序逻辑流程是错误的吗?当我使用这个
<form method="POST" action="{{ url('speaker/book-store') }}">
@csrf
</form>
我收到错误 404 未找到但我在 web.php 中的路线存在
这里web.php。
Route::get('/speaker/book', ' App\Http\Controllers\ProductController@create')-> name('speaker/book-create');
Route::post('/speaker/book', 'App\Http\Controllers\ProductController@store')->name('speaker/book-store');
但是当我使用路由而不是这样的 URL 时:
<form method="POST" action="{{ route('speaker/book-store') }}">
@csrf
</form>
我得到错误路由未定义:
这是我的ProductController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Order;
use App\Models\User;
use Auth;
class ProductController extends Controller {
public function create() {
return view('speaker/book');
}
public function store(Request $request) {
$order =new Order();
$order->date=$request->input('date');
$order->date=$request->input('time');
$order->date=$request->button('acara');
$order->date=$request->textarea('detail');
Auth::user()->orders()->save($order);
return redirect()->back()->with('success');
}
}
模型顺序
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Order extends Model {
use HasFactory;
public function user() {
return $this-> belongsTo('App\User');
}
}
我这样添加的模型用户:
public function orders() {
return $this->hasMany('App\Order');
}
【问题讨论】:
-
清除路线然后尝试
php artisan route:clear -
这些路线的命名约定不是好的做法,请遵循不带斜线的做法,例如 - “speaker.book_create” 作为名称
-
在这个例子中,URL 是错误的
-
@RushikeshGanesh 您好,先生,提前感谢您的帮助。我已经更改为名称 web.php 中的这个 speaker.book_create,我的 url 是这样的
-
你又做错了应该是那个"{{ route('speaker.book-store') }}"
标签: php laravel routes http-status-code-404 storing-data