Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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 拉维尔布线_Php_Laravel_Laravel 5_Laravel 5.2_Laravel Routing - Fatal编程技术网

Php 拉维尔布线

Php 拉维尔布线,php,laravel,laravel-5,laravel-5.2,laravel-routing,Php,Laravel,Laravel 5,Laravel 5.2,Laravel Routing,我对laravel-5.2的布线有点困惑。我面临一个问题。我有以下两条路线:- Route::get('{businessname}',BusinessController@getBusiness) //first Route Route::get('{username}','UsersController@getusername') //second route 所以你可以看到{businessname}和{username}是动态的。 但当我尝试访问url时,如:- Localhost:8

我对laravel-5.2的布线有点困惑。我面临一个问题。我有以下两条路线:-

Route::get('{businessname}',BusinessController@getBusiness) //first Route
Route::get('{username}','UsersController@getusername') //second route
所以你可以看到
{businessname}
{username}
是动态的。 但当我尝试访问url时,如:-

Localhost:8000/dummy-business-name // this route is going to this function that is right .... -> BusinessController@getBusiness 
但当我尝试用户名的第二种方法时,它也会转到getBusiness函数

Localhost:8000/kanu-mahajan i want this function should be redirect to UsersController@getusername
我知道另一种方法我们可以这样定义路线

Route::get('user/{username}','UsersController@getusername')

但我不想这样做。请帮助我如何在laravel 5.2中执行上述路由。

您不能这样做,因为它基本上是相同的路由,只是一个不同的参数

您可以使用
user/{username}
执行您建议的操作,也可以将所有参数发送到同一个函数并从那里进行处理

例如:

Route::get('{name}', function ($name) {
    // if name is username then do something
    // or if name is business then do something else
});

这两个路由都使用动态通配符,如何知道哪一个是用户名还是企业?这就是我该怎么做的问题??如果企业名称或用户名都相同,那么我该怎么做??您可以随时将代码分离到其他函数,这是更好的做法,因为没有其他方法可以对路由执行此操作:分组如果业务名称和用户名都相同,那么请考虑一下。它将是相同的url。唯一的方法是使这两个URL在某种程度上是唯一的。实际上,我正在做一个大项目,客户不希望像用户/{username}和商业/{business name}他们希望整个网站应该在域名后包含一个参数