相同的功能,不同的返回视图laravel

时间:2014-02-14 19:33:55

标签: php laravel laravel-3

我是Laravel的新手,我正在做以下事情,但我想知道是否有更好的方法来做到这一点。

两者都做同样的事情但返回不同的视图

    /**
 * Display a listing of the resource.
 *
 * @return Response
 */
public function index()
{
    //Get all the services
    $franchises = Franchise::all();

    //Load the view and pass the services
    return View::make('franchises.index')->with('franchises', $franchises);
}

/**
 * Display a listing of the resource.
 *
 * @return Response
 */
public function indexTwo()
{
    //Get all the services
    $franchises = Franchise::all();

    //Load the view and pass the services
    return View::make('admin.usertemplate')->with('franchises', $franchises);
}   

这是我的route.php

Route::get('admin/logout', array('as' => 'admin.logout', 'before' => 'user', 'uses' => 'AuthController@getLogout'));
Route::get('admin/login', array('as' => 'admin.login', 'before' => 'is_guest', 'uses' => 'AuthController@getLogin'));
Route::post('admin/login', array('as' => 'admin.login.post', 'before' => 'is_guest', 'uses' => 'AuthController@postLogin'));


//---- Backedn Index
Route::get('admin',array('as'=>'index','uses'=>'BackendController@getIndex'));

1 个答案:

答案 0 :(得分:1)

您的示例代表两种控制器方法。在隔离中,它们不执行任何操作。它们取决于路线(未提供)和模型(特许经营)。

这可以通过多种方式进行改进,具体取决于您的域逻辑层设计。

你可以这样做:

return View::make("franchises.index",compact("franchises"));

或者这个:

return View::make("franchises.index",["franchise"=>$franchises]);

但它是同一件事的变化。此外,它可以通过应用存储库模式来改进,这使您在处理数据库时具有更大的灵活性。即不依赖于一个ORM(雄辩)。

我伤心,一切都取决于你的目标。控制器只是你域逻辑的一扇门。

更新到您的更新:

您可以在一个控制器中对路线进行分组:

Route::resource("admin","AdminController");

请从laravel-3搬家。