【问题标题】:Laravel retrieve id from URLLaravel 从 URL 中检索 id
【发布时间】:2019-09-17 13:39:50
【问题描述】:

我想从 Laravel URL 中检索一个 id。 我试过这个:

$request->route('id');

但它会告诉我 $request 未定义。

我使用的网址是:

http://192.168.1.14/public/tasks/create?id=1

我有一个侧边栏,里面有一个 if 语句。

@if((request()->is('projects/1')) || (request()->is('tasks/create')))
    <a href="{{ route('tasks.create') }}?id={{ $project->id }}">
@endif

我隐藏了不必要的代码,但第二个参数用于在侧边栏中突出显示我所在的页面。当我在项目页面上时,第一个显示创建任务选项。

现在,if 语句导致它被隐藏(所以我看不到错误(错误会说没有 id 但它是真的,因为它只通过在具有 id 的项目页面上接收 id ) )

现在,页面上的任务表单本身有一个隐藏的输入字段 project_id,因此我可以将任务绑定到项目。

在值内我有$request-&gt;route('id'),但它给了我一个错误,即请求未定义。

现在我问,我如何从 url 中检索 id,否则我可以通过其他方式检索 id 吗?所有项目和任务刀片文件都扩展了project.index,project.index 扩展了layouts.blade,因此它是布局中的布局。

另外,我可以将(request()-&gt;is('projects/1')) 更改为其他内容,因此无论我在哪个项目页面上,该声明都是真的吗?例如'projects/{project}'

感谢您的帮助

【问题讨论】:

  • 使用 $request->get('id');如果您在控制器中并且如果您在刀片文件中,请使用 request()->get('id) 它将像魅力一样工作,顺便说一句,欢迎来到 Stack,希望您在这里有宾至如归的感觉...

标签: php laravel laravel-6


【解决方案1】:

最好的方法是 你不需要写'create'

{{ app('request')->input('id') }}

或

{{ request()->get('id') }}

如果您不确定它是如何工作的 存储在变量中并在视图上打印以像这样进行交叉验证。

<?php 
$id = app('request')->input('id');
//or
$id = request()->get('id');
?>

您始终可以像这样检查所有请求 URL 参数。

$request = request();
print_r($request);

【讨论】:

  • 嗨,谢谢,第二个建议很有效。我还想知道您是否可以帮助解决后一个问题?
  • 您能帮助解决帖子中的问题吗?关于(request()-&gt;is('projects/1')) 的那个?
【解决方案2】:

创建从 url 获取 id 的路由 示例:

Route::name('subscriptions.store')->post('/subscriptions/store/{id}', 'CreateSubscriptionController');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 2013-02-01
    • 2016-09-02
    • 2015-08-31
    • 1970-01-01
    • 2019-03-09
    • 2016-01-20
    相关资源
    最近更新 更多