2014-03-25 2 views
0

작은 문제가있어서 도움이 필요합니다. 어쩌면 매우 간단하지만, 난 그냥 내가이 그것의 사진을 편집 할 연락처에 액세스하려면 그래서 난하나의 컨트롤러에서 2 개의 컨트롤러 편집 (올바른)

public function edit($id = null) { 
    if (!$this->TypologyPicture->exists($id)) { 
     throw new NotFoundException(__('Invalid typology picture')); 
    } 
    if ($this->request->is(array('post', 'put'))) { 
      if(empty($this->data['TypologyPicture']['pic_path']['name'])){ 
       unset($this->request->data['TypologyPicture']['pic_path']); 
       } 
     if ($this->TypologyPicture->save($this->request->data)) { 
      $this->Session->setFlash(__('The typology picture has been saved.')); 
      return $this->redirect(array('action' => 'index')); 
     } else { 
      $this->Session->setFlash(__('The typology picture could not be saved. Please, try again.')); 
     } 
    } else { 
     $options = array('conditions' => array('TypologyPicture.' . $this->TypologyPicture->primaryKey => $id)); 
     $this->request->data = $this->TypologyPicture->find('first', $options); 

     //$options1 = array('conditions' => array('Typology.id' => $id)); 
     $opt = array('conditions' => array('Typology.id' => $this->request->data['TypologyPicture']['typology_id'])); 
     $this->request->data = $this->Typology->find('first', $opt); 

    } 


    if (AuthComponent::user('role')==='admin' ||AuthComponent::user('role')==='superadmin'){ //if the user is admin or superadmin, show all on dropdown 
      $items = $this->Typology->TypologyItem->find('list'); 
     } else {// else if the user is author, show only item created by him. 
      $items = $this->Typology->TypologyItem->find('list', array('conditions' => array('TypologyItem.user_id' => AuthComponent::user('id'))));    
     } 
    $typologyCategories = $this->Typology->TypologyCategory->find('list'); 
    $typologyConditions = $this->Typology->TypologyCondition->find('list'); 
    $users = $this->Typology->TypologyUser->find('list'); 
    $this->set(compact('items', 'typologyCategories', 'typologyConditions', 'users')); 

    if (AuthComponent::user('role')==='admin' ||AuthComponent::user('role')==='superadmin'){ 
     $typologies = $this->TypologyPicture->ItemTypologyPicture->find('list'); 
    } else { 
     $typologies = $this->TypologyPicture->ItemTypologyPicture->find('list', array('conditions' => array('ItemTypologyPicture.user_id' => AuthComponent::user('id')))); 
     } 
    $this->set(compact('typologies')); 
} 

그래서 당신이 접촉 컨트롤러에서 보는 바와 같이 하나의 컨트롤러를 withing에 있어요 ... 푸시 필요 contact_picture 테이블에 저장됩니다. 접촉 자체는 아이콘이나 아바타와 같으며, 연락처 사진에는 갤러리가 저장됩니다. 그래서 여기서 문제는 내가 생각한대로 모든 데이터를 얻을 수 있지만, 연락처 (아바타 또는 아이콘)의 이미지는 디스패치됩니다. 경로는 올바르게 retrived되지만 이미지를 표시합니다.

그래서 내가 묻는 것은 다른 방법이나 쉬운 방법 또는 더 좋은 방법이 있다면 나는 정말로 그것을 appruciate ... 정말.

미리 감사드립니다.

편집 :보기 부 : 나 이미지에 에코 않을 때

<?php echo $this->Form->create('TypologyPicture', array('type'=>'file')); ?> 
     <legend><?php echo __('Edit Typology Picture'); ?></legend> 
    <?php 
    $dir = "/img/uploads/typology/images/"; 
     echo $this->Form->input('id'); ?> 

<?php echo $this->Form->input('Typology.item_id',array('empty'=>true)); ?> 
<?php echo $this->Form->input('Typology.title'); ?> 
<?php echo $this->Form->input('Typology.description');?> 
<?php echo $this->Form->input('Typology.thumbnail',array('type'=>'file')); ?> 
<?php echo $this->Form->input('Typology.typology_category_id',array('empty'=>true)); ?> 
<?php echo $this->Form->input('Typology.typology_condition_id',array('empty'=>true)); ?> 
<?php echo $this->Form->input('Typology.price',array('placeholder'=>'Price')); ?> 
<!-- Here is the second part of the update --> 
<?php echo $this->Form->input('pic_path', array('label'=>'Picture','type'=>'file')); 
     echo $this->Form->input('hiddenimage', array('type'=>'hidden','value'=> $this->Form->value('pic_path'))); 
     $Image = $this->Form->value('pic_path');  
      if(empty($Image) || $Image==NULL) 
        {$Image = "/img/uploads/noimg.jpg";} 
       else {$Image = $dir . $Image; } 
     echo $this->Html->image($Image,array('align'=>'absbottom','style'=>'max-height:100px')); 
    ?> 
<?php echo $this->Form->end(__('Submit')); ?> 

그래서 올바르게 표시 doesent ... 난 정상적인 편집과 같은 유형학 모델 부분은 정상 표시 제거합니다. ..

+0

해야해야 보기 문제 -보기 코드를 게시 할 수 있습니까? 반환 된 경로를 사용하여 이미지를 탐색 할 수 있는지 확인 했습니까? 데이터를 검색하는 방식면에서 나는 모델에 대해 더 많이 알아야한다고 생각합니다. 왜 $ this-> Typology-> find ...에서 Contact.id를 사용하여 찾았습니까? 더 좋아할 것입니다. Typology.contact_id가 hasMany Typology를 가지고 있다면? – theotherdy

+0

@ theotherdy는 올바른 코드입니다. 어떻게 생각하십니까? 나는 틀릴지도 모른다 ??? – landi

+0

감사합니다 @ landi, 그리고 Typology와 TypologyPicture 사이의 관계? 내가 완전히 이해하고 있는지 잘 모르겠다 - 당신이 경로의 경로를 $ Image – theotherdy

답변

0

$ dir 및 $ Image;에서 img 부분을 제거합니다.

$dir = "/img/uploads/typology/images/"; 

나는 그것이 될 가능성이있어 생각이나 했 겠어요,

$dir = "uploads/typology/images/"; 

및 경로가 제대로 검색하는 경우

{$Image = "/img/uploads/noimg.jpg";} 

{$Image = "uploads/noimg.jpg";}