모든 관계가있는 객체를 어떻게 반환 할 수 있습니까 (하위 객체 관계입니까?). 이제 EJsonBehavior를 사용하지만 하위 관련 객체가 아닌 첫 번째 레벨 관계 만 반환합니다. 내 소스 코드 :관계가있는 Yii JSON
$order = Order::model()->findByPk($_GET['id']);
echo $order->toJSON();
Yii::app()->end();
모든 관계가있는 객체를 어떻게 반환 할 수 있습니까 (하위 객체 관계입니까?). 이제 EJsonBehavior를 사용하지만 하위 관련 객체가 아닌 첫 번째 레벨 관계 만 반환합니다. 내 소스 코드 :관계가있는 Yii JSON
$order = Order::model()->findByPk($_GET['id']);
echo $order->toJSON();
Yii::app()->end();
열망 로딩 방식 함께 주요 AR 예 (들)과 관련 AR 인스턴스를 검색합니다. 이것은 AR에서 find 또는 findAll 메소드 중 하나와 함께 with() 메소드를 사용하여 수행됩니다. 예 :
$posts=Post::model()->with('author')->findAll();
위의 코드는 Post 인스턴스의 배열을 반환합니다. 게으른 접근 방식과 달리 속성에 액세스하기 전에 각 Post 인스턴스의 작성자 속성은 이미 관련 User 인스턴스로 채워져 있습니다. 열심히로드하는 접근 방식은 각 게시물에 대한 조인 쿼리를 실행하는 대신 모든 조인을 작성자와 함께 단일 조인 쿼리로 가져옵니다!
with() 메소드에서 여러 개의 관계 이름을 지정할 수 있으며 열렬한로드 방식을 통해 모든 것을 한 번에 다시 가져올 수 있습니다. 예를 들어, 다음 코드는 작성자 및 카테고리와 함께 게시물을 가져올 것입니다.
$posts=Post::model()->with('author','categories')->findAll();
중첩 된 열의로드를 수행 할 수도 있습니다. 대신 관계 이름 목록, 우리는
$posts=Post::model()->with(
'author.profile',
'author.posts',
'categories')->findAll();
위의 예들은 저자 및 카테고리와 함께 다시 모든 게시물을 가져올 것이다, 다음처럼() 메서드에 관계 이름의 계층 적 표현으로 전달합니다. 또한 각 저자의 프로필과 게시물을 가져올 것입니다.
열망로드는 또한 다음과 같은 특성을 가진 CDbCriteria을 :: 지정하여 실행 할 수 있습니다
$criteria=new CDbCriteria;
$criteria->with=array(
'author.profile',
'author.posts',
'categories',
);
$posts=Post::model()->findAll($criteria);
또는
$posts=Post::model()->findAll(array(
'with'=>array(
'author.profile',
'author.posts',
'categories',
)
);
은 그에 대한 해결책을 발견했다. $ row-> attributes를 사용하여 데이터를 만들 수 있습니다.
$magazines = Magazines::model()->with('articles')->findAll();
$arr = array();
$i = 0;
foreach($magazines as $mag)
{
$arr[$i] = $mag->attributes;
$arr[$i]['articles']=array();
$j=0;
foreach($mag->articles as $article){
$arr[$i]['articles'][$j]=$article->attributes;
$j++;
}
$i++;
}
print CJSON::encode(array(
'code' => 1001,
'magazines' => $arr,
));
감사합니다. 내일 사용해 보겠습니다. –