【问题标题】:Missing required parameters for Route: dashboard URI: dashboard/{id} in laravel缺少路由所需的参数:仪表板 URI:laravel 中的仪表板/{id}
【发布时间】:2020-06-14 19:16:49
【问题描述】:

我必须在 laravel 中为同一个用户添加一个设备。我使用用户 ID 进行用户登录,但收到此错误消息

缺少 [Route: dashboard] [URI: 仪表板/{id}]。 (看法: D:\XAMPP\htdocs\addspy\resources\views\frontend\layouts\dashboard-sidebar.blade

我的路线是:

Route::get('/dashboard/{id}', 'DashboardController@index')->name('dashboard');

请指导我

提前致谢。

【问题讨论】:

  • 那条路线怎么称呼?错误消息从字面上说明出了什么问题
  • 向我们展示dashboard-sidebar.blade使用路由的代码。
  • 这意味着当您调用route('dashboard', auth()->id()) 时,您缺少auth()->id()auth()->id()null
  • 请建议我,我必须将多个设备合二为一,对此我一无所知...demo.xnspy.com/my-devices/… 必须这样做
  • 证明 URL 对我们没有帮助。请提供出现错误的代码。查看您的日志文件可能会对您有所帮助。

标签: laravel


【解决方案1】:

我不是 100% 确定这个问题,但您可以选择路由参数: https://laravel.com/docs/5.8/routing#parameters-optional-parameters

Route::get('/dashboard/{id?}', 'DashboardController@index')->name('dashboard');

如果您的仪表板路由未找到id,那么您需要手动处理并打开默认仪表板。

【讨论】:

  • 感谢您的回答...我必须允许多个设备的单个用户使用不同的仪表板。喜欢 - 对于 device1 不同的仪表板,对于 device2 不同的仪表板,但用户是相同的......请指导我
【解决方案2】:

我们需要的不仅仅是您向我们展示的东西来更好地为您提供帮助。

无论如何,如果您希望仪表板路由的id 参数为空,那么您需要在routes/web.php 中使其可选:

Route::get('/dashboard/{id?}', 'DashboardController@index')->name('dashboard');

如果没有,请删除?

然后将路由的参数添加到DashboardController@index action

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class DashboardController extends Controller
{
    public function index($id)
    {
        dd($id);
        // return view(..)
    }
}

最后调用dashboard-sidebar.blade.php中的路由:

route('dashboard', auth()->user()->id)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2015-04-22
    • 2018-04-04
    • 1970-01-01
    • 2018-11-09
    • 2012-09-14
    • 2021-04-15
    相关资源
    最近更新 更多