Php 在Laravel中,如何用URL中的just/slug替换控制器/方法/id?
用just/slug替换URL中的/controller/method/id的最佳方法是什么 例如:trips/1将成为/honduras trip 这就是我正在做的,但是他们的方式难道不是更好吗 我的路线:Php 在Laravel中,如何用URL中的just/slug替换控制器/方法/id?,php,laravel,slug,laravel-routing,Php,Laravel,Slug,Laravel Routing,用just/slug替换URL中的/controller/method/id的最佳方法是什么 例如:trips/1将成为/honduras trip 这就是我正在做的,但是他们的方式难道不是更好吗 我的路线: Route::get('/{slug}', 'HomeController@show'); 我的控制器: public function show($slug) { $class = Slug::where('name', '=', $slug)->firstOrFail(
Route::get('/{slug}', 'HomeController@show');
我的控制器:
public function show($slug)
{
$class = Slug::where('name', '=', $slug)->firstOrFail();
if($class->slugable_type == 'Trip')
{
$trip = Trip::find($class->slugable_id);
return $trip;
}
if($class->slugable_type == 'Project')
{
$project = Project::find($class->slugable_id);
return $project;
}
if($class->slugable_type == 'User')
{
$user = User::find($class->slugable_id);
return $user;
}
}
我的Slug模型:
class Slug extends Eloquent {
public function slugable()
{
return $this->morphTo();
}
}
其他型号均采用此方法:
public function slugs()
{
return $this->morphMany('Slug', 'slugable');
}
在routes.php中,只需给出
Route::get('slug', array('uses' => 'HomeController@show'));
在控制器中,编写show()函数
在你看来,
<li><a href="{{ URL::to('slug') }}">slug</a></li>
这不起作用,因为我需要“slug”是动态的,并根据“slug”所属的模型加载不同的模型。
<li><a href="{{ URL::to('slug') }}">slug</a></li>