php - 尽管路由正确,Laravel 资源控制器仍产生 404
问题描述
我创建了一个名为BirdsController
. 控制器索引和显示方法正确路由到页面。但是,尽管正确设置了路由和控制器,但 create 方法仍会产生 404 错误。是什么产生了这个错误?
网页.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\BirdsController;
Route::get('wildlife/birds', [BirdsController::class, 'index'])->name('birds');
Route::get('wildlife/birds/{bird:name}', [BirdsController::class, 'show'])->name('birds.show');
Route::get('wildlife/birds/create', [BirdsController::class, 'create'])->name('birds.create');
鸟类控制器
namespace App\Http\Controllers;
use App\Models\Birds;
use App\Models\User;
use Illuminate\Http\Request;
class BirdsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$birds = Birds::all();
return view('wildlife.birds.index',compact('birds'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('wildlife.birds.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\Models\Birds $birds
* @return \Illuminate\Http\Response
*/
public function show(Birds $bird)
{
return view('wildlife.birds.show', compact('bird'));
}
解决方案
为什么不在 web.php 路由文件中使用 Controller 作为资源?
Route::group('prefix' => 'wildlife', function() {
Route::resource('birds',BirdsController::class);
});
推荐阅读
- nginx - 让加密在续订时保留旧 IP 地址
- javascript - 如何验证使用表单生成器创建的表单的 html 作为 cakephp 中的 json 表单?
- javascript - 当对象文字优先于数组定义时定义键:值对结构时?
- postgresql - 在 psotgreSql 中的 json 类型列中搜索
- html - 如何在导航栏链接之间添加空格?
- react-native - 从数组映射时如何调用onChangeText函数
- json - 网络响应中相同 json 对象的不同键类型
- swift - 将 selectionRects(for:) 与 UITextField 子类一起使用
- java - MIUI 10.2 Redmi 设备的锁屏上未设置壁纸
- javascript - 如何对一个集合中多个文档的值求和并将总和推送到另一个集合中的文档