【问题标题】:How to add string id in url ? Laravel 5.3如何在 url 中添加字符串 id?拉拉维尔 5.3
【发布时间】:2017-08-08 10:13:08
【问题描述】:

我在视图上的链接href是这样的:

<a href="{{ route('message.inbox.detail.id', ['id' => $message->id]) }}" class="btn btn-default">
    <span class="fa fa-eye"></span> {{ trans('button.view') }}
</a>

我的路线是这样的:

Route::get('message/inbox/detail/{id}', ['as'=>'message.inbox.detail.id','uses'=>'MessageController@detail']);

url的结果是这样的:

http://myshop.dev/message/inbox/detail/58cadfba607a1d2ac4000254

我的控制器是这样的:

public function detail($id)
{
    dd($id);
}

如果这样,我就成功获得了 id 的值

但我想像这样更改 url 的结果:

http://myshop.dev/message/inbox/detail/id/58cadfba607a1d2ac4000254

我想这样更改 url,因为在控制器上我想得到这样的请求:

public function detail($id, Request $request)
{
    dd($id, $request->all());
}

我该怎么做?

【问题讨论】:

    标签: php laravel routes request laravel-5.3


    【解决方案1】:

    您可以将控制器更改为如下所示:

    public function detail(Request $request, $id)
    {
        dd($id, $request);
    }
    

    这样,请求将被注入到您的方法中,您将能够访问它。

    【讨论】:

    • 它不起作用。 $request-&gt;all() 的结果是空数组
    • 似乎 url 必须像这样更改:myshop.dev/message/inbox/detail/id/58cadfba607a1d2ac4000254。但是不知道怎么改
    • 所以,除了我从$id得到id,我也想从Request $request得到id。
    • $request-&gt;all() 将是一个空数组,如果你没有传递其他属性。尝试运行myshop.dev/message/inbox/detail/id/58cadfba607a1d2ac4000254?test_attribute=3
    • $request->path() 和分解路径
    【解决方案2】:

    确保你已经使用过

    use Illuminate\Http\Request;
    

    在您的控制器中。 你也可以这样。

    public function detail(Request $request, $id)
    {
        dd($id, $request);
    }
    

    【讨论】:

      猜你喜欢
      • 2017-07-16
      • 1970-01-01
      • 2017-02-03
      • 2017-11-12
      • 1970-01-01
      • 2019-06-29
      • 2017-03-16
      • 1970-01-01
      • 2015-05-07
      相关资源
      最近更新 更多