【问题标题】:How can i pass parameter using ? in url in Laravel我如何使用传递参数?在 Laravel 的 url 中
【发布时间】:2020-12-20 17:37:46
【问题描述】:

我想使用 ? 传递参数在网址中,例如

http://example.com/somthing?name=myname&phone=12121212

当我添加一个“?”在 Route 文件中显示 404

在我的路线文件中

Route::get('test?id={id}&name={name}','TestController@test')->name('frontend.test');

我的控制器

public function test($id, $name)
{
    
    dd($name);
}

但是当我像这样使用它时效果很好

路由文件:

Route::get('test/id={id}&name={name}','TestController@test')->name('frontend.test');

控制器:

public function test(Request $request)
{
    
    dd($request->route()->parameters());
}

我有一个带有原始 php 的项目,我想将其转换为 Laravel,所以我不想更改 url 结构。

如何在 Laravel 路由中实现这一点。

【问题讨论】:

标签: php laravel routes


【解决方案1】:

我不会在路由中定义参数。

Route::get('test','TestController@test')->name('frontend.test');

我更喜欢像这样验证和获取请求参数:

use Illuminate\Http\Request;

...

public function test(Request $request)
{
    $params = $request->validate([
        'id' => 'required|numeric',
        'name' => 'required|alpha'
    ]);

    dd($params['id'], $params['name']);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-22
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 2021-05-23
    • 2016-02-21
    • 2018-10-14
    相关资源
    最近更新 更多