-1

大家好我試圖訪問每個單獨用戶的配置文件圖片文件名,當他們登錄到系統。我有一個'配置文件'表,我需要在我的default.ctp視圖文件中提供,因爲我正在嘗試加載配置文件映像。如何訪問配置文件模型文件名字段以顯示每個用戶配置文件圖片

我目前使用$ current_user變量設置在我的appController的beforefilter中,以$ current_user ['filename']的形式訪問'users'。我的用戶和配置文件關係已在我的模型中相應設置。如果任何人都可以幫助,我將不勝感激。提前致謝。

我AppController中的beforeFilter聲明:

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

我default.thtml中查看文件代碼嘗試:

<?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']); ?> 

我需要能夠訪問當前用戶的配置文件模型文件名字段,以顯示其已經b的圖片een保存到文件名字段。它會在用戶登錄時調用,並且我想顯示這個用戶個人資料圖片。

在default.ctp視圖中,Iam使用下面的代碼,但我需要針對每個用戶個人資料圖片進行調整。

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

;

回答

2

約書亞,首先,而不是再次發佈嘗試保持你的線程在一起(你可以編輯你的帖子,這有助於其他人正在尋找相同的答案)。

How to make a Model available in a View Cakephp 2.x

同樣,我建議你用視圖元素,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.thtml中的文件,你應該能夠調用如下:

echo $this->Html->image('/uploads/profile/filename/thumb/small/'.$profile['Porfile']['filename']); 
+0

感謝shoesole我將在今後的記住這一點。我已經測試過你的方法,它的功能就像一個魅力。謝謝。 – Joshua

相關問題