Laravel从URL检索ID

时间:2019-09-17 13:39:50

标签: php laravel laravel-6

我想从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,而是true,因为它仅通过位于具有id的项目页面上来接收id)) )

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

在值中我有$request->route('id'),但它给我一个错误,就是请求未定义。

现在,我问,如何从网址中检索ID,否则可以用其他方式检索ID?所有项目和任务刀片文件都扩展了project.index,而project.index扩展了layouts.blade,因此其在布局内的布局。

此外,我可以将(request()->is('projects/1'))更改为其他内容吗,因此无论我在哪个项目页面上,该语句都是正确的?例如'projects / {project}'

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

最好的方法是 您不需要写“创建”

html {
 -webkit-touch-callout:none;
 -webkit-user-select:none;
 -khtml-user-select:none;
 -moz-user-select:none;
 -ms-user-select:none;
 user-select:none;
 -webkit-tap-highlight-color:rgba(0,0,0,0)
}

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

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

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

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

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

答案 1 :(得分:0)

创建用于从网址获取ID的路线 示例:

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