提问人:Kholid Syaifullah 提问时间:5/17/2023 更新时间:5/17/2023 访问量:98
Route::Resource 工作正常,但使用相同控制器的其他路由 get Method Controller::show 不存在。拉拉维尔 10
Route::Resource Was Working Fine, but additional route using same controller got Method Controller::show does not exist. Laravel 10
问:
因此,我使用相同的控制器创建了 2 个单独的索引,其中检索每个数据,并仅检索其他特定数据标准。注册和登录路由工作正常,每个资源路由也工作正常,唯一的问题是使用已经建立的路由资源控制器的新路由时。我得到的是 BadMethodCallException 方法 App\Http\Controllers\PinjamController::show 不存在。
链接到相应的索引
<!-- /.Index Working Fine -->
<a class="btn btn-success" href="{{ route('pinjam.index') }}"> Index Pinjam</a>
<!-- /.This one got error 404 because resource didn't contain 'all' syntax and only focused on CRUD?-->
<a class="btn btn-primary" href="{{ route('pinjam.all')}}"> Record Peminjaman</a>
<!-- /.This is the one that got badMethodCall error-->
<a class="btn btn-primary" href="{{ url('/admin/pinjam/all')}}"> Record Peminjaman</a>
网络.php
use App\Http\Controllers\PinjamController;
Route::resource('/admin/pinjam',PinjamController::class)->middleware('auth:admin');
Route::get('/admin/pinjam/all',[PinjamController::class,'all'])->middleware('auth:admin');
Route::get('/admin/pinjam/kembali',[PinjamController::class,'kembali'])->middleware('auth:admin');
Route::post('/admin/pinjam/track',[PinjamController::class,'track'])->middleware('auth:admin');
Pinjam控制器:.php
use Illuminate\Http\Request;
use App\Providers\RouteServiceProvider;
use App\Models\bukus_users;
protected function all()
{
$rows = bukus_users::query()->with(['buku', 'user'])->paginate(5)->toArray(); // the error part and also where I seperated them was on blade file
return view('admin.pinjam.all', ['rows' => $rows]);
}
protected function kembali()
{
return view('admin.kategori.kembali');
}
protected function track(Request $request)
{
$pinjam = bukus_user::where('barcode','like','%' . request('barcode') . '%')->first();
$pinjam->status_pengembalian = false;
$pinjam->save();
return redirect()->route('pinjam.index')->with('success','Buku Telah dikembalikan');
}
protected function index()
{
$rows = bukus_users::query()->with(['buku', 'user'])->paginate(5)->toArray(); // index just working fine
return view('admin.pinjam.index', ['rows' => $rows]);
}
错误链接到ss的屏幕截图,那么这里有什么问题?由于资源路由工作正常,因此我手动创建的注册和登录以使管理员守卫也能正常工作,那么为什么除了访问同一控制器时出错的资源路由之外,还有其他路由呢?
答:
0赞
Leena Patel
5/17/2023
#1
尝试重新排序路线。将所有新路由放在 Resourse 之前。
Route::get('/admin/pinjam/all',[PinjamController::class,'all'])->middleware('auth:admin');
Route::get('/admin/pinjam/kembali',[PinjamController::class,'kembali'])->middleware('auth:admin');
Route::post('/admin/pinjam/track',[PinjamController::class,'track'])->middleware('auth:admin');
Route::resource('/admin/pinjam',PinjamController::class)->middleware('auth:admin');
或者,您可以尝试像这样手动添加资源路由
Route::get('/admin/pinjam/{pinjam}', [PinjamController::class, 'show'])->middleware('auth:admin');
Route::get('/admin/pinjam', [PinjamController::class, 'index'])->middleware('auth:admin');
Route::get('/admin/pinjam/create', [PinjamController::class, 'create'])->middleware('auth:admin');
Route::post('/admin/pinjam', [PinjamController::class, 'store'])->middleware('auth:admin');
Route::get('/admin/pinjam/{pinjam}/edit', [PinjamController::class, 'edit'])->middleware('auth:admin');
Route::put('/admin/pinjam/{pinjam}', [PinjamController::class, 'update'])->middleware('auth:admin');
Route::delete('/admin/pinjam/{pinjam}', [PinjamController::class, 'destroy'])->middleware('auth:admin');
评论
public
show
show