Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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路由,以便媒体按id搜索,但在URL中显示slug?_Php_Laravel_Laravel 5.1_Laravel Routing_Laravel Controller - Fatal编程技术网

Php 如何修改此Laravel路由,以便媒体按id搜索,但在URL中显示slug?

Php 如何修改此Laravel路由,以便媒体按id搜索,但在URL中显示slug?,php,laravel,laravel-5.1,laravel-routing,laravel-controller,Php,Laravel,Laravel 5.1,Laravel Routing,Laravel Controller,因此,下面的代码URL看起来像:/downloadpage/34 我想让URL SEO变得友好,比如:/downloadpage/slug 在“媒体”表中有一列slug。如何在这段代码中改变媒体按id搜索,但在URL中显示slug routes.php文件: Route::get('/downloadpage/{id}', [ 'as' => 'downloadpage', 'uses' => 'DownloadController@index' public functi

因此,下面的代码URL看起来像:
/downloadpage/34
我想让URL SEO变得友好,比如:
/downloadpage/slug

在“媒体”表中有一列
slug
。如何在这段代码中改变媒体按id搜索,但在URL中显示slug

routes.php文件:

Route::get('/downloadpage/{id}', [
    'as' => 'downloadpage', 'uses' => 'DownloadController@index'
public function index($id){
    $images   = DB::table('media')->where("id", "=", $id)->get();
    $popular  = DB::table('media')->orderBy('count_download', 'DESC')->take(5)->get();
    $mostlike = DB::table('media')->orderBy('count_like', 'DESC')->take(5)->get();
    $alsolike = DB::table('media')->orderByRaw("RAND()")->where("id", "!=", $id)->take(3)->get();
    $settings = Setting::first();
    $previous = DB::table('media')->where('id', '<', $id)->max('id');
    $next     = DB::table('media')->where('id', '>', $id)->min('id');
    $imgshare = DB::table('media')->where("id", "=", $id)->first();
    return view('download.downloadpage', ['images'=>$images , 'popular'=>$popular, 'mostlike'=>$mostlike, 'alsolike'=>$alsolike, 'settings'=>$settings, 'previous'=>$previous, 'next'=>$next, 'imgshare'=>$imgshare]);
}
DownloadController.php文件:

Route::get('/downloadpage/{id}', [
    'as' => 'downloadpage', 'uses' => 'DownloadController@index'
public function index($id){
    $images   = DB::table('media')->where("id", "=", $id)->get();
    $popular  = DB::table('media')->orderBy('count_download', 'DESC')->take(5)->get();
    $mostlike = DB::table('media')->orderBy('count_like', 'DESC')->take(5)->get();
    $alsolike = DB::table('media')->orderByRaw("RAND()")->where("id", "!=", $id)->take(3)->get();
    $settings = Setting::first();
    $previous = DB::table('media')->where('id', '<', $id)->max('id');
    $next     = DB::table('media')->where('id', '>', $id)->min('id');
    $imgshare = DB::table('media')->where("id", "=", $id)->first();
    return view('download.downloadpage', ['images'=>$images , 'popular'=>$popular, 'mostlike'=>$mostlike, 'alsolike'=>$alsolike, 'settings'=>$settings, 'previous'=>$previous, 'next'=>$next, 'imgshare'=>$imgshare]);
}
公共功能索引($id){
$images=DB::table('media')->其中(“id”,“=”,$id)->get();
$popular=DB::table('media')->orderBy('count_download','DESC')->take(5)->get();
$mostlike=DB::table('media')->orderBy('count_like','DESC')->take(5)->get();
$alsolike=DB::table('media')->orderByRaw(“RAND()”)->where(“id”),“!=”,$id)->take(3)->get();
$settings=设置::first();
$previous=DB::table('media')->where('id','',$id)->min('id');
$imgshare=DB::table('media')->其中(“id”、“=”、$id)->first();
返回视图('download.downloadpage',['images'=>$images',popular'=>$popular',mostlike'=>$mostlike',alsolike'=>$alsolike',settings'=>$settings',previous'=>$previous',next'=>$next',imgshare'=>$imgshare]);
}
类似的东西

路线:

Route::get('/downloadpage/{slug}', [
    'as' => 'downloadpage', 'uses' => 'DownloadController@index'
控制器:

public function index($slug){
    $images   = DB::table('media')->where("slug", "=", $slug)->first();
    $popular  = DB::table('media')->orderBy('count_download', 'DESC')->take(5)->get();
    $mostlike = DB::table('media')->orderBy('count_like', 'DESC')->take(5)->get();
    $alsolike = DB::table('media')->orderByRaw("RAND()")->where("id", "!=", $id)->take(3)->get();
    $settings = Setting::first();
    $previous = DB::table('media')->where('id', '<', $images->id)->max('id');
    $next     = DB::table('media')->where('id', '>', $images->id)->min('id');
    return view('download.downloadpage', ['images'=>$images , 'popular'=>$popular, 'mostlike'=>$mostlike, 'alsolike'=>$alsolike, 'settings'=>$settings, 'previous'=>$previous, 'next'=>$next, 'imgshare'=>$images]);
}
公共功能索引($slug){
$images=DB::table('media')->其中(“slug”、“=”、$slug)->first();
$popular=DB::table('media')->orderBy('count_download','DESC')->take(5)->get();
$mostlike=DB::table('media')->orderBy('count_like','DESC')->take(5)->get();
$alsolike=DB::table('media')->orderByRaw(“RAND()”)->where(“id”),“!=”,$id)->take(3)->get();
$settings=设置::first();
$previous=DB::table('media')->where('id','',$images->id)->min('id');
返回视图('download.downloadpage',['images'=>$images',popular'=>$popular',mostlike'=>$mostlike',alsolike'=>$alsolike',settings'=>$settings',previous'=>$previous',next'=>$next',imgshare'=>$images);
}
我将
$images=DB::table()…->first()
行更改为
->first()
,这样就不会得到数组。您可能还需要更改视图中的某些内容


我强烈建议您阅读基本的Laravel文档,它清楚地解释了这一点。并浏览文档,将您的
DB
调用转换为模型。

通过应用此更改,url变得如我所愿,但出现了许多错误。