-1

こんにちは。システムにログインしているときに、個々のユーザーのプロフィール写真のファイル名にアクセスしようとしています。'profiles'テーブルがあり、プロファイル画像を読み込もうとしているので、default.ctpビューファイルでこれを利用できるようにする必要があります。

現在、appControllerのbeforefilterで設定されている$ current_user変数を使用して、$current_user['filename']の形式で'users'にアクセスしています。それに応じて、ユーザーとプロファイルの関係がモデルに設定されています。誰か助けていただければ幸いです。前もって感謝します。

私のAppControllerのbeforeFilter宣言:

$this->loadModel('Profile');
    $profiles = $this->Profile->find('all');
    $this->set('profiles', $profiles);

私のdefault.ctpビューファイルコードの試み:

<?php echo $this->Html->image('/uploads/profile/filename/thumb/small/'.$profile['filename']); ?>

現在のコード:

<?php echo $this->Html->image('/uploads/profile/filename/thumb/small/'.$current_user['filename']); ?>

ファイル名フィールドにすでに保存されている画像を表示するには、現在のユーザーのプロファイルモデルのファイル名フィールドにアクセスできる必要があります。ユーザーがログインすると呼び出され、このユーザーのプロフィール写真を表示したいと思います。

default.ctpビューでは、以下のコードを使用していますが、個々のユーザーのプロフィール写真に合わせて調整する必要があります。

foreach($profiles as $profile) : 
    echo $current_user['Profile']['filename'];
endforeach

;

4

1 に答える 1

2

Joshuaは、まず、投稿する代わりに、スレッドをすべてまとめてみてください(投稿を編集できます。これは、同じ回答を検索している他のユーザーに役立ちます)。

ViewCakephp2.xでモデルを利用できるようにする方法

繰り返しになりますが、view要素とrequestActionを使用してこれを行うことをお勧めしますが、前回その回答を受け入れなかったため、ここで行っていることを処理します。

ユーザーがすでに認証されている場合は、チェックインできるユーザーに関する情報が必要です。

 $this->Auth->User();

だから、私はあなたのコードを次のように作り直します:

$this->loadModel('Profile');
$user_id = $this->Auth->User('id');
$profile = $this->Profile->find('first', array('conditions'=>array('Profile.user_id'=>$user_id), 'fields'=>array('filename'));
$this->set(compact('profile'));

これで、default.ctpファイルで、次のように呼び出すことができるはずです。

echo $this->Html->image('/uploads/profile/filename/thumb/small/'.$profile['Porfile']['filename']);
于 2012-12-10T16:42:22.523 に答える