2015-07-01 93 views
0

我想記錄在圖像表文件中。Cakephp 3.x表「Admin Model Table ImagesTable」與「Url」沒有關聯

namespace Admin\Model\Table; 

use Cake\ORM\Table; 
use Cake\Validation\Validator; 
use Cake\ORM\Query; 
use Cake\ORM\TableRegistry; 

class ImagesTable extends Table 
{ 
    public function initialize(array $config) { 
     $this->table('images'); 
    $this->hasMany('ImageAlbums', [ 
     'className' => 'Admin.ImageAlbums', 
     'foreignKey' => 'conver_image_id' 
    ]); 
    } 

    public function saveImage($imageDescription, $imageName, $albumId){ 
    $imageEntity = $this->newEntity(); 
    $imageData = [ 'imageDescription' => $imageDescription, 
        'imageOriginalUrl' => $this->Url->build('/', true).'original-img/'.$imageName, 
        'imageSmallUrl' => $this->Url->build('/', true).'small-img/'.$imageName, 
        'imageMediumUrl' => $this->Url->build('/', true).'medium-img/'.$imageName, 
        'imageBigUrl' => $this->Url->build('/', true).'big-img/'.$imageName, 
        'album_id' => $albumId]; 
    $imageEntity = $this->patchEntity($imageEntity, $imageData); 
    return $this->save($imageEntity); 
    } 
} 

我在圖像相冊控制器中調用此方法('saveImage')。

$image = $this->ImageAlbums->Images->saveImage("description.", 'natural.jpg', $this->enumArray['albums']['albumConverImages']); 

將圖片相冊關聯到圖表此代碼。

$this->belongsTo('Images', [ 
      'className' => 'Admin.Images', 
      'foreignKey' => 'conver_image_id' 
     ]); 

我得到這個錯誤。 '表'Admin \ Model \ Table \ ImagesTable「不與」Url「相關聯'

我想創建圖像相冊。我想添加一張專輯封面的照片。你可以幫我嗎?你能提出一種錯誤解決方案或不同解決方案嗎?

回答

1

您在表類函數內調用$this->Url->build(...),但Url是一個幫助器,它不可用於表。請嘗試使用Router::url(...)。無論如何,Url構建方法只是一個包裝器!

+0

感謝兄弟。使用Cake \ Routing \ Router;路由器:: URL( '/',真);代碼就是成功。 –