Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 在laravel 4中生成相对于基本url的url_Php_Url_Laravel_Laravel 4 - Fatal编程技术网

Php 在laravel 4中生成相对于基本url的url

Php 在laravel 4中生成相对于基本url的url,php,url,laravel,laravel-4,Php,Url,Laravel,Laravel 4,我是拉威尔的新手&现在正在L-4上构建一个应用程序,但却被困在了一个地方。无法理解如何相对于基本url生成url。在laravel-3中,我知道这可以通过 $url = URL::to('user/profile'); 但是,在L-4中,我们如何做到这一点 首先,您需要创建一个命名路由,如 说你想去http://baseurl/user并在控制器“allusers”中运行“showuser”定义方法 那么你的路线应该是这样的:- Route::get('user', array('as' =

我是拉威尔的新手&现在正在L-4上构建一个应用程序,但却被困在了一个地方。无法理解如何相对于基本url生成url。在laravel-3中,我知道这可以通过

$url = URL::to('user/profile'); 

但是,在L-4中,我们如何做到这一点

首先,您需要创建一个命名路由,如

说你想去
http://baseurl/user
并在控制器“allusers”中运行“showuser”定义方法

那么你的路线应该是这样的:-

Route::get('user', array('as' => 'myuser', 'uses' => 'allusers@showuser'));
现在您指向/user的URL将是

$myuserurl = URL::to('/myuser');
echo $myuserurl; // would be http://baseurl/user

我希望这对你有帮助。请参考生成相对URL,您可以使用
URL::route
URL::action
,因为它们允许传递默认为
true
$absolute
参数。因此,例如,要在使用命名路由时获取相对URL,可以使用以下方法:

URL::route('foobar', array(), false)

这将生成一个类似于
/foobar

的URL,它不应该是
URL::to('myuser')因为它会调用路由的名称来确定链接到哪里,而不是直接链接到路由?如果是
URL::to('/myuser')
,我相信路由应该是
route::get('/myuser',array('as'=>'myuser','uses'=>'allusers@showuser'));可以定义不带前导斜杠(/)的路由,并可以直接使用URL::Route获取命名路由URL,如下所示:-Route::get('myuser',array('as'=>'myuser','uses'=>'allusers@showuser')); 用法--URL::route('myuser',array())被否决,因为答案有误导性。URL::to()不会路由到命名路由,也不会生成相对URL。@我理解您希望提供帮助,但很遗憾,我们无法接受您的编辑,因为该代码显然与作者所说的代码冲突。“为什么不把你改进后的解决方案作为你自己的答案呢?”安德烈·丹尼尔明白了。在匆忙提交编辑后,我意识到这与SO的编辑政策相冲突。我想不出怎么收回它,抱歉。最后,我在霍尔格·韦斯的回答中添加了一条评论,这相当清楚地表明了正确的方法。这是最接近于正确答案的问题。URL::route()生成指向命名路由的URL,最后一个
false
参数规定生成的路由是相对的。为清楚起见,生成的URL将是命名路由定义的URL,不一定是
/foobar