View Laravel 4-根据用户数据库中的值显示不同的视图

View Laravel 4-根据用户数据库中的值显示不同的视图,view,laravel,laravel-4,View,Laravel,Laravel 4,我试图根据用户是否已激活其帐户来显示纵断面图,即active=1(或0表示inactive) 如果用户已激活其帐户,则显示一个视图,其中包含用户的详细信息。如果用户未显示其他视图,则表明他们需要激活其帐户 这是我遇到问题的代码: public function user($username) { // Get the /username from URL and check the database $user = User::where('username', '=', $u

我试图根据用户是否已激活其帐户来显示纵断面图,即active=1(或0表示inactive)

如果用户已激活其帐户,则显示一个视图,其中包含用户的详细信息。如果用户未显示其他视图,则表明他们需要激活其帐户

这是我遇到问题的代码:

public function user($username) {

    // Get the /username from URL and check the database
    $user = User::where('username', '=', $username);

    // If /username does exist
    if($user->count()->('active', '=', 1)) {

        // Grab user info from database
        $user = $user->first();

        // return the active user view
        return View::make('profile.active-user')->with('user', $user);

    } else {

        // Grab user info from database
        $user = $user->first();

        // return the inactive view
        return View::make('profile.inactive-user')->with('user', $user);

    }

    return App::abort(404); // else throw a 404

}
任何帮助/逻辑都将不胜感激


谢谢,杰克。

您可以通过将雄辩的查询和404相结合来简化它。此外,查询后您已经有了用户对象,因此不需要额外的雄辩材料:

public function user($username) {

    //get user from db, if no result throw not found (404)
    $user = User::where('username', '=', $username)->firstOrFail();

    if($user->active) {
        // return the active user view
        return View::make('profile.active-user')->with('user', $user);
    } else {
        // return the inactive view
        return View::make('profile.inactive-user')->with('user', $user);
    }

}

工作完美-谢谢:)