>  기사  >  백엔드 개발  >  Yii 프레임워크에서 find findAll을 사용하여 지정된 필드를 찾는 방법 비교

Yii 프레임워크에서 find findAll을 사용하여 지정된 필드를 찾는 방법 비교

高洛峰
高洛峰원래의
2017-02-06 17:08:541232검색

우리 모두 알고 있듯이

modelName::model() -> find()  //찾은 것은 객체입니다.
modelName::model() -> findALL()  // 찾은 것은 객체 컬렉션의 배열입니다
모든 필드의 데이터가 아닌 필요한 필드의 데이터를 찾는 방법

전에 이 작업을 했습니다

$criteria = new CDbCriteria;
$criteria->select = 'username,id,email';
$criteria->order = 'id DESC';
$users = modelName::model()->findAll( $criteria );

우연히 뒤에서 누군가가 이런걸 쓰는 걸 보고 제가 얼마나 무지했는지 깨달았습니다

아아아

테스트해본 결과 작동하는 걸 확인했으니 find도 작동 가능하네요 이런 식으로

$users = modelName::model()->findAll(array(
  'select' =>array('username','id','email'),
  'order' => 'id DESC',
));

물론 다음 방법도 사용할 수 있습니다.

$user = modelName::model()->find(array(
  'select' =>array('username','id','email'),
  'order' => 'id DESC',
  'condition' => 'id='.$id,
));

마찬가지로, findAll로 테스트할 수도 있습니다. 결론

물론 페이지 매김이 필요한 경우 다음 CDbCriteria에 new가 필요합니다.

예를 들어, videoinfo 테이블에서 'v_id', 'title', 'big_class', 'sub_class', 'upload_time', 'comment_num' 및 기타 필드를 꺼내고 싶고 조건은 status=1입니다. lastmodifytime을 역순으로 따르세요. 그리고 3개 항목만 꺼내십시오.

$users = $this->user->find(array(
  'select'=>array('id','username','email'),
  'order' => 'id DESC',
  'condition' => 'state=:state AND id=:id',
  'params' => array(':state'=>'1',':id' => '2'),
));

내가 주석 처리한 줄은 예를 들어 상태를 조건부로 할당해야 하는 경우 자리 표시자로 표시되는 변수를 전달하는 데 사용할 수 있습니다. 변수에 따라 주석 처리된 줄에 값을 할당한 다음

$criteria = new CDbCriteria() ;
$criteria -> select = array('v_id','title','big_class','sub_class','upload_time','comment_num');    
$criteria -> condition = 'status = 1';
$criteria -> order = 'lastmodifytime desc';
$criteria -> limit = 3;
 $criteria ->params = array (':status' => $你的变量) ;
$result = VideoInfo::model()->findAll($criteria);

이면 충분합니다.
이렇게 하면 $result 변수가 결과가 됩니다. 이는 개체 목록이며 순회해야 합니다.

$criteria -> condition = 'status = :status';

예를 들어 각 필드를 표시하려면

foreach ($result as $ob){
      print_r($ob->attributes);
 }

이 완성되었습니다. CPagination 클래스는 CDbCriteria 클래스 및 프런트 엔드 페이징 플러그인과 함께 사용할 수 있습니다.

$ob->attributes['title'];
$count =VideoInfo::model()->count($criteria)
 
$pages=new CPagination($count);   
$pages->pageSize=30; //每页分多少条
$pages->applyLimit($criteria);

더보기 Yii 프레임워크에서 특정 필드를 찾는 findAll 메소드 찾기 관련 기사는 PHP 중국어 웹사이트를 참고하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.