가능한 중복 :
PHP: “Notice: Undefined variable” and “Notice: Undefined index”CakePHP의 2.2.4 : 정의되지 않은 인덱스 오류
많은 사람들의 "공지 사항 (8) 정의되지 않은 인덱스"오류 메시지가 있지만 없음에 대한 질문과 대답이 솔루션이 나를 위해 일하고 있습니다. 내 모델 관계가 올바르게 설정되었는지 잘 모르겠습니다. 제발 조언. ARTICLES INDEX.CTP 페이지에서 정의되지 않은 색인 오류가 발생하며 "아바타"는 정의되지 않은 부분입니다. 내 USERS VIEW.CTP 페이지에서
나는
$this->Custom->UserAvatar($article['User']['Avatar']['file'], $article['User']['username'], 'avatar_large');
에코 그것은 나에게 사용자에 대한 올바른 아바타를 제공합니다.
은 내 사용자 모델과 같이 설정 :
class User extends AppModel {
var $belongsTo = array(
'Avatar' => array(
'className' => 'Avatar',
'dependent' => true,
'foreignKey' => 'id = Avatar.id' ),
);
public $hasMany = array(
'Favorite' => array(
'className' => 'Favorite',
),
'Article' => array(
'className' => 'Article',
)
);
} // end Model
내 제 모델과 같이 설정 :
class Article extends AppModel {
public $validate = array(
'title' => array(
'rule' => 'notEmpty'
),
'content' => array(
'rule' => 'notEmpty'
)
);
var $belongsTo = array(
'User' => array(
'className' => 'User',
'dependent' => true,
'foreignKey' => 'user_id'),
);
} // end Model
내 아바타 모델은이 모델도 필요하다 (과 같이 설정 이 시점에서) :
class Avatar extends AppModel {
var $hasmany = array(
'User' => array(
'className' => 'User')
);
} // end Model
그 디 경우에 기사 컨트롤러에서 $ 사용자 = 배열 ('사용자', '아바타')를 넣어 뭐든지.
관계가 맞는지 확실하지 않습니다. 내 테이블 :
이Articles (id, user_id...etc)
Users(id, avatar_id...etc)
Avatars(id, file...etc)
편집이 :가 정확한 오류 읽기 ...
Notice (8): Undefined index: Avatar [/APP/View/Articles/index.ctp, line 35]
include- APP/View/Articles/index.ctp, line 35
View::_evaluate() - CORE/Cake/View/View.php, line 920
View::_render() - CORE/Cake/View/View.php, line 883
View::render() - CORE/Cake/View/View.php, line 475
Controller::render() - CORE/Cake/Controller/Controller.php, line 957
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 193
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 161
[main] - APP/webroot/index.php, line 92
편집 : $ 기사의 ArticlesController.php의 요청에 따라
App::uses('AppController', 'Controller');
/**
* Articles Controller
*
* @property Article $Article
*/
class ArticlesController extends AppController {
/**
* index method
*
* @return void
*/
public function index() {
// $this->Article->recursive = 0; // I used this originally
// $this->set('articles', $this->paginate()); // I used this originally
$this->Article->find('all');
$this->set('articles', $this->paginate());
}
디버그 또는 $ article이 User에서 중지됩니다. 아바타는 User 배열 내의 배열이어야합니다.
$article = array(
'Article' => array(
'id' => '11',
'page_id' => '2',
'topic_id' => '7',
'user_id' => '29',
'title' => 'Test title for article 11'
),
'Page' => array(
'id' => '2',
'category_id' => '1',
'title' => 'Dexter',
),
'Topic' => array(
'id' => '7',
'page_id' => '11',
'title' => 'Press'
),
'User' => array(
'password' => '*****',
'id' => '29',
'username' => 'testuser',
'avatar_id' => '519'
)
)
무엇이 오류입니까? –
Notice를 확장하여 전체적으로 번역하십시오. 데이터가 거기에 있는지보기 위해 배열을 디버그 했습니까? 그게 보통입니다. –
이것은 간단한 배열 에러 일 가능성이 높습니다 (Colby가 정확하고 foreignKey가 매우 틀리며 모델을 가지고있는 것처럼 보일 것입니다). 배열을 에코/디버그하고 그에 따라 파일을 수정하십시오. – Dave