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 在Laravel中,如何用URL中的just/slug替换控制器/方法/id?_Php_Laravel_Slug_Laravel Routing - Fatal编程技术网

Php 在Laravel中,如何用URL中的just/slug替换控制器/方法/id?

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(

用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();
    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>