문제

가정은 다음과 같은 협회 중에서 세 가지 데이터베이스의 테이블:

    //working with three tables a client 'has one' business
    //and a business has many business hours.

다음과 같은 것이 우리에게 편의 Activerecord 체:

$this->client->business->businesshours

우리가 물체를 끌어당기 양식을 배열을 얻기 위해 열 값:

$this->client->business->businesshours[0]->start_time

이후 나는 새로운 PHP Activerecord, 무엇인지,어떤 방법으로의 진행을 끌어/sort/정보를 사용하여 배열에서 객체의 다른 것보다 반복과 foreach()루프?이 있습 방법을 통해 분류 개체 배열, 풀 정보 열 값을 기반으로,어떤 모범 사례를 따라야 합니까?

도움이 되었습니까?

해결책

이 없는 도서관별 연습에 대한 정렬하거나 당기는 특정 businesshour 체의 결과 배열입니다.당신을 조작하려는 반환되는 개체의 배열을 사용할 필요가 표준 PHP 배열 기능 array_map 에서 결과 배열입니다.

알고 있는 경우 또는 정렬 순서 당신이 원하는 조건에 대해 반환되는 객체에서 결과 배열해야 합 대신 지정한 당신의 협회에 있는 선언 그래서 당신은 반환 하지 않는 객체는 원하지 않거나 필요합니다.

때문에 당신이 게시하지 않은 모든 코드에 당신은 단지 추정을 자신의 상황에서 이 예제:

static $has_many = array(
  array(
    'businesshours',
    'conditions' => array('hour BETWEEN ? AND ?' => array(9, 17)),
    'order' => 'hour ASC'
  )
);

이 연결을 선언만을 반환 businesshour 사 9 17 고 그것을 오름차순으로 정렬됩니다.그래서 당신이 볼 수 있듯이,를 제한하는 경우에 당신의 협회에만 기록할 필요가 없을 것을 정렬해야 또는 분석 결과 배열면 받았습니다.

가끔 사용하는 것이 유용 array_map 을 얻을만 특정 개체에서의 결과 배열:

// get $result array
$new = array_map(function($obj) { if ($obj->hour > 9){ return $obj; } }, $result);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top