3

Yii で、ユーザーが Yii で自分のデータのみを表示およびアクセスできるようにする最善の方法はありますか?

管理者は何でも見られるはずだと思っていましたが、今のところ、その橋を渡るのは後でします。

ありがとう

4

3 に答える 3

9

スコープを調べます。デフォルトのスコープはあなたの友達になります: http://www.yiiframework.com/doc/guide/1.1/en/database.ar#named-scopes

defaultScopes 配列は関数内にあるため、条件付きのデフォルト スコープを実行することもできます。

public function defaultScope()
{
    $t=$this->getTableAlias(false,false);

    if(Yii::app()->user->notAdmin()) {
        return array(
            'condition'=>"$t.<column_name> = :<columnName>",
            'params'=>array(':<columnName>'=>Yii::app()->user->notAdmin),
        );
    }
    else return array();
}

編集:注意しないと、これにより問題が発生する可能性があることに注意してください。詳細については、Yii サイトの this issue を参照してください

于 2012-06-17T04:28:46.263 に答える
2

Yii がこれを行う方法はありません。自分で行うことになりますが、かなり簡単です。

スコープを検討するか、リレーションを調べて、現在のユーザーに基づいてすべてをベースにすることができます。たとえば、ユーザーによるすべての投稿を取得するには、次のようにします。

$posts = Post::model()->findAll();    //WRONG

$posts = Yii::app()->user->posts();   //RIGHT (Should define the relation in the User model)
于 2012-06-17T06:52:39.437 に答える
0

私が書いた解決策をチェックしてください:

http://www.yiiframework.com/forum/index.php/topic/42735-restrict-users-to-only-editingdeleting-their-own-entries/page_ gopid _237608#entry237608

于 2014-02-05T08:13:55.787 に答える