如何在同一位置传递不同的动态参数以访问laravel中的不同视图页面

普拉泰克

这些是我面临问题的路线

路线以获取特定城市中已注册地点的列表

例如: http:// localhost:8000 / Londonhttp:// localhost:8000 / London / Restaurants

Route::group(['namespace' => 'Page'], function() {
    Route::group(['prefix' => '{city}', 'where'  => ['city' => '[\w\d]+']], function() {
        Route::get('/', 'CityPageController@showCityPage')->name('cityPage');
    });
});

路由获取特定的用户个人资料及其详细信息,例如评论,照片等。

例如: http:// localhost:8000 / Johnhttp:// localhost:8000 / John / reviewshttp:// localhost:8000 / John / photos

Route::group(['namespace' => 'User'], function() {
    Route::group(['middleware' => 'verified'], function() {
        Route::group(['prefix' => '{username}', 'where'  => ['username' => '[\w\d]+']], function() {
            Route::get('/', 'ProfileController@showProfilePage')->name('profilePage');
            Route::get('/reviews', 'ReviewController@showReviewPage')->name('reviewPage');
            Route::get('/photos', 'ImageController@showPhotoPage')->name('photoPage');
        });
    });
});

问题是这两个路由不能同时工作。

居于另一个之上的路由优先于另一个路由。

如何解决这个路由问题。

编辑

我知道有一种方法可以实现此功能,但我不知道如何。任何帮助表示赞赏。

哈西尔·帕西耶尔

注意:如果您还没有的话,我建议您首先在数据库上创建一个唯一的Slug字段,该字段将出现在url上

您的路线文件

Route::get('{slug1}', 'PageController@singleSlug'); # slug 1 has to be unique i.e. username and cityname
Route::get('{slug1}/{slug2}', 'PageController@doubleSlug'); # combination of slug1 and slug2 has to be unique

控制器功能

public function singleSlug($slug1)
{
    $user = User::where('name', $slug1)->first();
    if ($user) {
        return view('user')->compact('user');
    }

    $city = City::where('name', $slug1)->first();

    if ($city) {
        return view('city')->compact('city');
    }

    abort(404); # neither user nor city
}



public function doubleSlug($slug1, $slug2)
{
    // check the slug2 as this value is always defined by the system
    switch ($slug2) {
        case 'Restaurants':
            $city = City::with('restaurants')->where('name', $slug1)->first();
            if ($city) {
                $viewName = 'city_restos_listing';
                $viewData = $city;
            }
            break;

        case 'reviews':
            $user = User::with('reviews')->where('name', $slug1)->first();
            if ($user) {
                $viewName = 'user_reviews_listing';
                $viewData = $user;
            }
            break;

        case 'photos':
            $user = User::with('photos')->where('name', $slug1)->first();
            if ($user) {
                $viewName = 'user_photos_listing';
                $viewData = $user;
            }
            break;

        default:
            abort(404); # the slug 2 is incorrect
            break;
    }
if(isset($viewName)) {
    return view($viewName)->compact('viewData');
  } else {
    abort(404); # user or city not found
 }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在同一位置显示不同的索引数组在php

来自分类Dev

单击导航栏中给出的链接时,如何在同一位置显示不同的 API 结果?

来自分类Dev

将两个不同的文本放在HTML页面的同一位置

来自分类Dev

如何以不同的分辨率在同一位置获得鼠标位置

来自分类Dev

如何在 R 中排列在列表中的多个数组中的同一位置输入来自单个向量的连续不同值?

来自分类Dev

如何使不同的div出现在同一位置?

来自分类Dev

当div停留在同一位置时,如何在div中换行?

来自分类Dev

当div停留在同一位置时,如何在div中换行?

来自分类Dev

在 Android 中,如何在具有不同分辨率的另一个屏幕上的同一位置绘制一条线?

来自分类Dev

如何在RDLC 2010报告的每个页面上的同一位置显示相同的图像

来自分类Dev

在同一位置显示来自不同组件的模板

来自分类Dev

LocationManager会为同一位置的Lat和Long提供2个不同的值

来自分类Dev

我如何使导航系统为每个项目显示不同的表单,但在同一位置显示不同的导航项目?

来自分类Dev

如何在C#中“中断” while循环并返回到同一位置(不使用任何线程)

来自分类Dev

如何使按钮保持在同一位置?

来自分类Dev

如何保持文字在同一位置?

来自分类Dev

2个CMFCTabControls处于不同位置,但选项卡位于同一位置

来自分类Dev

如何在对象位于同一位置的同时旋转画布对象

来自分类Dev

bash:如何在同一位置回显字符串

来自分类Dev

如何在同一位置刷新 div 避免重复行

来自分类Dev

是否会在其他线程中始终以相同的顺序看到两次在不同线程中对同一位置的轻松写入?

来自分类Dev

CSS 如何让表格中的所有元素在同一位置结束

来自分类Dev

为什么我的os.getcwd()在同一位置的两个不同文件之间更改?

来自分类Dev

检查两个字符串是否在两个不同的数组中但在同一位置

来自分类Dev

当两个视图位于同一位置时,如何控制显示和隐藏?

来自分类Dev

即使我重新加载页面,如何将 div 元素放在同一位置并检索 .data() 值

来自分类Dev

如何在GLSL中绑定统一位置?

来自分类Dev

当 UIScrollView 垂直滚动时,UIScrollView 的子视图保持在同一位置

来自分类Dev

滚动页面时强制div元素保持在同一位置

Related 相关文章

  1. 1

    如何在同一位置显示不同的索引数组在php

  2. 2

    单击导航栏中给出的链接时,如何在同一位置显示不同的 API 结果?

  3. 3

    将两个不同的文本放在HTML页面的同一位置

  4. 4

    如何以不同的分辨率在同一位置获得鼠标位置

  5. 5

    如何在 R 中排列在列表中的多个数组中的同一位置输入来自单个向量的连续不同值?

  6. 6

    如何使不同的div出现在同一位置?

  7. 7

    当div停留在同一位置时,如何在div中换行?

  8. 8

    当div停留在同一位置时,如何在div中换行?

  9. 9

    在 Android 中,如何在具有不同分辨率的另一个屏幕上的同一位置绘制一条线?

  10. 10

    如何在RDLC 2010报告的每个页面上的同一位置显示相同的图像

  11. 11

    在同一位置显示来自不同组件的模板

  12. 12

    LocationManager会为同一位置的Lat和Long提供2个不同的值

  13. 13

    我如何使导航系统为每个项目显示不同的表单,但在同一位置显示不同的导航项目?

  14. 14

    如何在C#中“中断” while循环并返回到同一位置(不使用任何线程)

  15. 15

    如何使按钮保持在同一位置?

  16. 16

    如何保持文字在同一位置?

  17. 17

    2个CMFCTabControls处于不同位置,但选项卡位于同一位置

  18. 18

    如何在对象位于同一位置的同时旋转画布对象

  19. 19

    bash:如何在同一位置回显字符串

  20. 20

    如何在同一位置刷新 div 避免重复行

  21. 21

    是否会在其他线程中始终以相同的顺序看到两次在不同线程中对同一位置的轻松写入?

  22. 22

    CSS 如何让表格中的所有元素在同一位置结束

  23. 23

    为什么我的os.getcwd()在同一位置的两个不同文件之间更改?

  24. 24

    检查两个字符串是否在两个不同的数组中但在同一位置

  25. 25

    当两个视图位于同一位置时,如何控制显示和隐藏?

  26. 26

    即使我重新加载页面,如何将 div 元素放在同一位置并检索 .data() 值

  27. 27

    如何在GLSL中绑定统一位置?

  28. 28

    当 UIScrollView 垂直滚动时,UIScrollView 的子视图保持在同一位置

  29. 29

    滚动页面时强制div元素保持在同一位置

热门标签

归档