2013-11-29 65 views
0

我遇到了laravel4寧靜路由的問題。這裏是我遇到錯誤
如何在laravel4資源控制器中添加其他路由

在我的路線我已經下資源,爲用戶

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

根據這個我可以訪問所有資源支持的方法。在我的用戶控制器我想添加新的方法getProfile。這意味着我正在嘗試使用資源無法支持的方法。據一些帖子,我建議增加

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

終於我的路線成爲

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

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

通過這種方式我可以打電話給getProfile從這樣users/profile 任何地方都很好。

但問題發生時,我在那個方法加載視圖

public function getProfile() 
    { 

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

任何人可以幫助我離開這裏

回答

0

首先,我建議ü閱讀beware-the-route-to-evil寫道菲爾鱘魚。如果你想使用其他航線資源路線,你必須把其他航線上的資源路徑的頂部。例如:

Route::get('users/login','[email protected]'); 
Route::resource('users','UsersController'); 

OR

你可以從

改變你的控制器
public function getLogin() 

public function login() 

希望你發現這很有

+0

感謝快速回復。我會看看 –

+0

沒有概率的人..和所有最好的! –

+0

它似乎並不喜歡... –

0

Route.php

Route::get('/', function() 
{ 
    return View::make('hello'); 
}); 

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

Route::get('users/login','[email protected]'); 

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'); 
    } 

} 
0

它得到了解決方案,但我不能滿足它。這是我如何使它
Route::get('users/login', array('as' => 'users.login', 'uses' => '[email protected]'));

+1

什麼讓你不滿意?還有一件事..不​​要創建新的答案只是編輯它 –

0

@Sanny Singhts的解決方案是正確的,但需要注意的是,在routes.php文件,你應該把路由爲了..

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

應始終在路線的頂部::資源()

相關問題