0

私は持っている

{% if auth.renderFriendShip("{{auth.id}}", "{{user.id}}", 'isThereFriendship') == 0 %}

私のビューファイルで。{{auth.id}} と {{user.id}} を変更する必要がありますが、そうではありません。PHPモデル(関数がつながる場所)の{{user.id}}で「var_dump」を実行すると、{{user.id}}が出力されます。

これが私のビューファイルの関連コードです...

{% if auth.renderFriendShip("{{auth.id}}", "{{user.id}}", 'isThereFriendship') == 0 %}
    <button class="friendBtn add" data-uid="{{user.id}}" data-type="addFriend">Friend</button>
    <button class="request_pending hidden" disabled>Request Pending</button>
{% else %}
    <button class="friendBtn unfriend" data-uid="{{user.id}}" data-type="unfriend">Unfriend</button>
    <button class="friendBtn add hidden" data-uid="{{user.id}}" data-type="addFriend">Add as friend</button>                        
    <button class="request_pending hidden" disabled>Request Pending</button>
{% endif %}

そして私のユーザーモデル...

public function renderFriendShip($user_one, $user_two, $type) {
    if(!empty($user_one) || !empty($user_two) || !empty($type)) {
        switch($type) {
            case 'isThereRequestPending':
                $matchThese = ['user_one' => "$user_one", 'user_two' => "$user_two", 'friendship_official' => '0'];
                $orMatchThese = ['user_one' => "$user_two", 'user_two' => "$user_one", 'friendship_official' => '0'];

                $query = $this->friendsList()
                    ->where($matchThese)
                    ->orWhere($orMatchThese)
                    ->get()
                    ->count();

                return $query;
                break;
            case 'isThereFriendship':
                $q = $this->friendsList()
                    ->where(function($query) use ($user_one, $user_two) {
                        return $query->where(['user_one' => $user_one, 'user_two' => $user_two, 'friendship_official' => '1']);
                    })
                    ->orWhere(function($query) use ($user_one, $user_two) {
                        return $query->where(['user_one' => $user_two, 'user_two' => $user_one, 'friendship_official' => '1']);
                    })
                    ->get()
                    ->count();

                break;
        }
        return var_dump($user_two);
    } else {
        return "Failed";
    }
}

あなたが私に与えることができるアドバイスをありがとう。私は何時間も探していましたが、解決策が見つかりませんでした。

4

1 に答える 1

0

ここでの問題は単純です。小枝ファイルで中括弧を参照しauth.idて使用しています。user.id使用してみてください:

{% if auth.renderFriendShip(auth.id, user.id, 'isThereFriendship') == 0 %}

ドキュメントから:

中括弧は変数の一部ではなく、print ステートメントの一部であることを知っておくことが重要です。タグ内の変数にアクセスするときは、括弧で囲まないでください。

于 2015-08-05T10:46:07.843 に答える