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

时间:2014-08-08 15:01:07

标签: view laravel laravel-4

我尝试显示个人资料视图取决于用户是否已激活其帐户 - 即有效= 1(或0表示无效)

如果用户已激活其帐户,则会向用户显示详细信息,以查看他们是否显示不同的视图,说明他们需要激活其帐户。

这是我遇到问题的代码:

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

}

任何帮助/逻辑都会非常感激。

谢谢,杰克。

1 个答案:

答案 0 :(得分:2)

你可以通过结合雄辩的查询和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);
    }

}