【问题标题】:How to solve this 404 Not Found error even though my route exist即使我的路线存在,如何解决这个 404 Not Found 错误
【发布时间】:2021-12-31 19:51:37
【问题描述】:

我有这条路线:

Route::get('orderview/{id}', [UserController::class, 'vieworder']);

这是我的表单操作:

 <td>
         <a href="{{ url('orderview/'.$item->id) }}" class="btn btn-primary">View</a>
 </td>

当我触发此表单操作时,它会给我页面未找到并且我检查了我的路线以确认该路线已使用:

php 工匠路线:列表

我也试过了:

php artisan route:clear

php artisan route:cache 

php artisan config:clear

php artisan optimize

但是这个问题仍然存在,请我帮助。

对不起,这是控制器:

public function vieworder($id)
{
    $orders = Order::where('id', $id)->where('user_id', Auth::id())->first();
    return view('frontend.orders.view', compact('orders'));
}

【问题讨论】:

  • 为什么使用 URL 助手而不是路由助手?

标签: laravel parameters routes laravel-8


【解决方案1】:

改变你的路线

Route::get('orderview/{id}', '[namespace]\UserController@vieworder')->name('orderview');;

并在您的href 中使用route()

href="{{ route('orderview',['id' => $item->id]) }}"

【讨论】:

  • 得到这个错误::::::;: Symfony\Component\Routing\Exception\RouteNotFoundException Route [orderview] 未定义。 (查看:C:\xampp\htdocs\Laravel\odjayshop\resources\views\frontend\orders\index.blade.php)
  • 在路由中使用你的命名空间
【解决方案2】:

像这样使用路由器中的功能:

Route::get('orderview/{id}', '[ClassNameSpace]\UserController@vieworder')->name('orderview');

更新:[ClassNameSpace] 应该更改为您的客户/全局目标类的命名空间:)

【讨论】:

  • @Mohammed H. - 在我将其更改为您的解决方案后,我收到此错误:目标类 [App\Http\Controllers\UserController] 不存在。
  • 可以分享UserController的命名空间吗?
  • 感谢上帝,它成功了——我不得不将部分从:App\Http\Controllers\UserController 更改为:'Frontend\UserController@vieworder'...... 还要更改:Route::get ('orderview/{id}', [UserController::class, 'vieworder']); To: Route::get('orderview/{id}', 'UserController@vieworder')->name('orderview');谢谢大家,真的很感激。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-20
  • 2020-08-05
  • 2016-05-23
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多