【问题标题】:How to add additional route in laravel4 resource controller如何在 laravel 资源控制器中添加额外的路由
【发布时间】:2013-12-15 06:34:21
【问题描述】:

我在使用 laravel4 宁静路由时遇到了一些问题。这是我得到错误的原因

在我的路线中,我为用户关注资源

Route::resource('users', 'UsersController'); 

据此,我可以访问资源支持的所有方法。在我的 用户控制器 中,我想添加新方法 getProfile 。这意味着我正在尝试使用资源无法支持的方法。根据一些帖子,我建议添加

Route::controller('users', 'UsersController');

我的路线终于变成了

Route::controller('users', 'UsersController');

Route::resource('users', 'UsersController'); 

这样我就可以像users/profile这样的任何地方打电话给getProfile 一切顺利。

但是当我在该方法中加载视图时出现问题

public function getProfile()
    {

        return View::make('users.profile');
    }

谁能帮我离开这里

【问题讨论】:

    标签: controller resources routes laravel-4 restful-url


    【解决方案1】:

    @Sanny Singhts 的解决方案是正确的,但请注意,在 routes.php 中,您应该按顺序排列路线..

    Route::get() or Route::post()
    

    应该始终在 Route::resource() 之上

    【讨论】:

      【解决方案2】:

      它得到了解决方案,但我对此并不满意。这就是我如何做到的
      Route::get('users/login', array('as' => 'users.login', 'uses' => 'UsersController@login') );

      【讨论】:

      • 是什么让你不满意?还有一件事..不​​要创建新答案只需编辑它
      【解决方案3】:

      首先,我建议你阅读 phil sturgeon 写的beware-the-route-to-evil。如果您想将资源路由与其他路由一起使用,您必须将其他路由放在资源路由的顶部。例如:

      Route::get('users/login','UsersController@getLogin');
      Route::resource('users','UsersController');
      

      您可以从

      更改您的控制器
      public function getLogin()
      

      public function login()
      

      希望你觉得这很有用

      【讨论】:

        【解决方案4】:

        Route.php

        Route::get('/', function()
        {
            return View::make('hello');
        });
        
        // Route::controller('users', 'UsersController');
        
        Route::get('users/login','UsersController@login');
        
        Route::resource('users', 'UsersController'); 
        
        Route::resource('customers', 'CustomersController');
        


        UsersController.php

        <?php
        
        class UsersController extends BaseController {
        
            /**
             * User Repository
             *
             * @var User
             */
            protected $user;
        
            public function __construct(User $user)
            {
                $this->user = $user;
            }
        
            /**
             * Display a listing of the resource.
             *
             * @return Response
             */
            public function index()
            {
                $users = $this->user->all();
        
                return View::make('users.index', compact('users'));
            }
        
        
            /**
             * 
             * Login Form View
             * 
             * @return Response
             */
            public function getLogin()
            {       
                return View::make('users.login');
            }
        
        
        
        }
        


        User.php(模型)

        <?php
        
        class User extends Eloquent {
            protected $guarded = array();
        
            public static $rules = array(
                'name' => 'required',
                'email' =>  'required|email|unique:users',
                'password' => 'required|min:8|max:32|confirmed'
            );
        
            /* Relationship */
            public function enquire()
            {
                return $this->hasMany('Enquire');
            }   
        
        }
        

        【讨论】:

          猜你喜欢
          • 2014-02-18
          • 2019-09-28
          • 2014-10-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-16
          • 2013-06-04
          • 2017-02-10
          相关资源
          最近更新 更多