在Laravel 4中将2个参数从路由传递到控制器

凯特威

路线

Route::get('/site/{site_name_en}/{id}', array(
    'as' => 'profile-site',
    'uses' => 'ProfileController@site'
));

控制器

class ProfileController extends BaseController{

    public function site($id, $site_name_en){
        $site = Site::where('id', '=', $id)
            ->where('site_name_en', '=', $site_name_en);

        if($site->count()){
            $site = $site->first();
            return View::make('profile.site')
                ->with('site', $site);
        }
        return App::abort(404);
    }
}

我要实现的目标是:当我访问以下URL时www.domain.com/site/abc/123456,它将根据参数显示正确的页面。where条款正确吗?(因为我无法检索该值)

达米安·皮西(Damien Pirsy)

你的路线

Route::get('/site/{site_name_en}/{id}',

说第一个参数是站点名称,第二个参数是ID,但是您的控制器函数交换了参数。您应该称呼它为:

public function site($site_name_en, $id){
   // rest of code
}

参数将按照路由定义的顺序自动传递,而变量名(IIRC)无法识别这些参数。

至于功能的其余部分,我无法真正判断出您是否做对了,但是我可以建议:

$site = Site::where('id', '=', $id)
            ->where('site_name_en', '=', $site_name_en)
            ->first();
if($site){
   return View::make('profile.site');
}
return App::abort(404);

或者,您可以使用firstOrFail()ModelNotFoundException如果未找到您可以捕获的记录,则会抛出App::error()(例如,实现概述在手册中)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Laravel中将固定变量从路由传递到控制器

来自分类Dev

Laravel - 将参数从 web.php 路由传递到控制器

来自分类Dev

如何在Laravel 4中将复选框的值作为数组从视图传递到控制器

来自分类Dev

Laravel将参数从控制器传递到模型

来自分类Dev

Laravel将参数从控制器传递到模型

来自分类Dev

将多个参数从 Laravel 5 中的路由传递给控制器

来自分类Dev

将固定变量从路由传递到Laravel中的控制器

来自分类Dev

在Laravel 5.2中将页面URL参数传递给控制器

来自分类Dev

Laravel 4 将输入从刀片传递到控制器

来自分类Dev

将数据从控制器传递到Laravel中的视图

来自分类Dev

将变量从控制器传递到Laravel中的通知

来自分类Dev

将数据从视图传递到Laravel中的控制器

来自分类Dev

是否可以在Laravel中将路由参数传递给控制器构造函数?

来自分类Dev

如何在获取路由中将默认参数传递给laravel控制器

来自分类Dev

是否可以在Laravel中将路由参数传递给控制器构造函数?

来自分类Dev

Laravel-使用Ajax将2个变量从视图传递到控制器

来自分类Dev

将变量从Laravel 4中的其他控制器传递到视图

来自分类Dev

如何使用控制器处理Laravel 4子域路由,将子域作为参数传递

来自分类Dev

如何使用控制器处理Laravel 4子域路由,将子域作为参数传递

来自分类Dev

Laravel-将值从路由器传递到控制器

来自分类常见问题

Laravel从控制器传递url参数到路由

来自分类Dev

Laravel从控制器传递url参数到路由

来自分类Dev

Laravel从路由向控制器传递参数

来自分类Dev

使用Laravel资源丰富的路由将参数传递给'.index'控制器功能

来自分类Dev

laravel 5.2-将路由参数传递给控制器

来自分类Dev

Laravel将路由URL参数作为null传递给控制器

来自分类Dev

Laravel路由:如何将参数传递给控制器(而不是通过URL)?

来自分类Dev

将单个参数传递给路由组laravel 5.2内部的控制器

来自分类Dev

Laravel将可选参数路由到控制器

Related 相关文章

  1. 1

    在Laravel中将固定变量从路由传递到控制器

  2. 2

    Laravel - 将参数从 web.php 路由传递到控制器

  3. 3

    如何在Laravel 4中将复选框的值作为数组从视图传递到控制器

  4. 4

    Laravel将参数从控制器传递到模型

  5. 5

    Laravel将参数从控制器传递到模型

  6. 6

    将多个参数从 Laravel 5 中的路由传递给控制器

  7. 7

    将固定变量从路由传递到Laravel中的控制器

  8. 8

    在Laravel 5.2中将页面URL参数传递给控制器

  9. 9

    Laravel 4 将输入从刀片传递到控制器

  10. 10

    将数据从控制器传递到Laravel中的视图

  11. 11

    将变量从控制器传递到Laravel中的通知

  12. 12

    将数据从视图传递到Laravel中的控制器

  13. 13

    是否可以在Laravel中将路由参数传递给控制器构造函数?

  14. 14

    如何在获取路由中将默认参数传递给laravel控制器

  15. 15

    是否可以在Laravel中将路由参数传递给控制器构造函数?

  16. 16

    Laravel-使用Ajax将2个变量从视图传递到控制器

  17. 17

    将变量从Laravel 4中的其他控制器传递到视图

  18. 18

    如何使用控制器处理Laravel 4子域路由,将子域作为参数传递

  19. 19

    如何使用控制器处理Laravel 4子域路由,将子域作为参数传递

  20. 20

    Laravel-将值从路由器传递到控制器

  21. 21

    Laravel从控制器传递url参数到路由

  22. 22

    Laravel从控制器传递url参数到路由

  23. 23

    Laravel从路由向控制器传递参数

  24. 24

    使用Laravel资源丰富的路由将参数传递给'.index'控制器功能

  25. 25

    laravel 5.2-将路由参数传递给控制器

  26. 26

    Laravel将路由URL参数作为null传递给控制器

  27. 27

    Laravel路由:如何将参数传递给控制器(而不是通过URL)?

  28. 28

    将单个参数传递给路由组laravel 5.2内部的控制器

  29. 29

    Laravel将可选参数路由到控制器

热门标签

归档