Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从url获取控制器操作,laravel_Php_Laravel_Filter_Laravel 4_Laravel Routing - Fatal编程技术网

Php 从url获取控制器操作,laravel

Php 从url获取控制器操作,laravel,php,laravel,filter,laravel-4,laravel-routing,Php,Laravel,Filter,Laravel 4,Laravel Routing,我可以从给定的URL获取控制器操作吗 在我的项目中,我将为管理员和普通用户使用不同的布局。i、 e something.com/content/list-将显示布局1 something.com/admin/content/list-将显示布局2 (但需要由同一控制器生成) 为此,我添加了过滤器来检测模式'admin/*'。现在,我需要调用URL其余部分所需的操作(“content/list”或将出现在那里的任何内容)。也就是说,在admin/之后可以有任何内容,可以是foo/1/edit(在这

我可以从给定的URL获取控制器操作吗

在我的项目中,我将为管理员和普通用户使用不同的布局。i、 e

something.com/content/list-将显示布局1

something.com/admin/content/list-将显示布局2

(但需要由同一控制器生成)

为此,我添加了过滤器来检测模式
'admin/*'
。现在,我需要调用URL其余部分所需的操作(“
content/list
”或将出现在那里的任何内容)。也就是说,在
admin/
之后可以有任何内容,可以是
foo/1/edit
(在这种情况下应该调用foo-controller),也可以是
bar/1/edit
(在这种情况下应该调用bar-controller)。这就是为什么控制器名称应该从过滤器捕获的url动态生成

因此,我想从URL(内容/列表)获取控制器操作,然后从过滤器内部调用该控制器操作

可以这样做吗?

您可以使用

但是该方法必须以HTTP谓词作为前缀,我不确定它是否可以包含更多的url段,在您的情况下,我建议只使用:

Route::group(array('prefix' => 'admin'), function()
{
    //map certain path to certain controller, and just throw 404 if no matching route  
    //it's good practice
    Route::('content/list', 'yourController@yourMethod');

});
你可以用

但是该方法必须以HTTP谓词作为前缀,我不确定它是否可以包含更多的url段,在您的情况下,我建议只使用:

Route::group(array('prefix' => 'admin'), function()
{
    //map certain path to certain controller, and just throw 404 if no matching route  
    //it's good practice
    Route::('content/list', 'yourController@yourMethod');

});

在控制器功能中使用此选项-

if (Request::is('admin/*'))
{
    //layout for admin (layout 2)
}else{
    //normal layout (layout 1)
}

在控制器功能中使用此选项-

if (Request::is('admin/*'))
{
    //layout for admin (layout 2)
}else{
    //normal layout (layout 1)
}

您可以使用
Request::segment(index)
获取
url的部分/段

// http://www.somedomain.com/somecontroller/someaction/param1/param2
$controller = Request::segment(1); // somecontroller
$action = Request::segment(2); // someaction
$param1 = Request::segment(3); // param1
$param2 = Request::segment(3); // param2

您可以使用
Request::segment(index)
获取
url的部分/段

// http://www.somedomain.com/somecontroller/someaction/param1/param2
$controller = Request::segment(1); // somecontroller
$action = Request::segment(2); // someaction
$param1 = Request::segment(3); // param1
$param2 = Request::segment(3); // param2

感谢所有参与的人

我刚刚在另一个线程中找到了问题的解决方案

这就是我所做的

if(Request::is('admin/*')) {
    $my_route = str_replace(URL::to('admin'),"",Request::url());

    $request = Request::create($my_route);
    return Route::dispatch($request)->getContent();
}

我在文档中找不到这些方法。所以我希望,这也能帮助其他人。

感谢所有参与的人

我刚刚在另一个线程中找到了问题的解决方案

这就是我所做的

if(Request::is('admin/*')) {
    $my_route = str_replace(URL::to('admin'),"",Request::url());

    $request = Request::create($my_route);
    return Route::dispatch($request)->getContent();
}

我在文档中找不到这些方法。所以我希望,这也能帮助其他人。

我已经这样做了。现在,我需要查看在“admin/”之后发现了什么,然后调用与该url对应的控制器。查看我发布的有问题的编辑。使用
$segment=Request::segment(1)阅读单个uri段然后相应地重定向。如更改参数值,如1,2。。根据决定重定向所需的参数。重定向对我不起作用,因为这会将当前URL从“admin/foo/1/edit”更改为“foo/1/edit”。我需要URL中的“管理员”部分来确定它是普通用户还是管理员用户。我想要的是能够获取URL其余部分的控制器操作名称,然后调用该控制器。这不是重定向,使用此方法读取uri段,然后使用该段值决定需要加载哪个布局。我已经这样做了。现在,我需要查看在“admin/”之后发现了什么,然后调用与该url对应的控制器。查看我发布的有问题的编辑。使用
$segment=Request::segment(1)阅读单个uri段然后相应地重定向。如更改参数值,如1,2。。根据决定重定向所需的参数。重定向对我不起作用,因为这会将当前URL从“admin/foo/1/edit”更改为“foo/1/edit”。我需要URL中的“管理员”部分来确定它是普通用户还是管理员用户。我想要的是能够获取URL其余部分的控制器操作名称,然后调用该控制器。这不是重定向,使用此方法读取uri段,然后使用该段值来决定需要加载哪个布局。这将是实现我想要的内容的一种方法。但这不是重点。我想知道是否可以从动态URL中获取特定控制器操作的名称,然后无论我们在URL中得到什么都调用该控制器。这将是实现我想要的一种方法。但这不是重点。我想知道是否可以从动态URL中获取特定控制器操作的名称,然后无论在URL中得到什么,都调用该控制器。您是如何为这些操作创建路由的?您可以发布与这些相关的路由吗?您可以显示这些路由吗?您是如何创建这些路由的?你能发布与这些相关的路线吗?你能显示这些路线吗?