'events'라는 객체가 있는데, $ data [ 'events'] = function을 통해 생성됩니다 (이 이벤트는 활성 레코드를 사용하여 이벤트 테이블 및 기타 정보를 가져옵니다).CodeIgniter 다차원 객체 - ActiveRecord
Array
(
[0] => stdClass Object
(
[id] => 2
[course_name] => Course 3
[course_description] => Course
[course_price] => 995
[supplier_name] => Supplier 3
[location_country_code] => GB
[location_country] => United Kingdom
[location_city] => London
[venue_name] => Venue 2
[venue_address] => 2 Street
[venue_postcode] => EC2M 7PQ
[venue_city] => London
[venue_county] =>
[venue_country] => United Kingdom
[venue_locality] =>
[event_type] => Materials Only
[event_status] => Confirmed
[course_id] => 2
[event_duration] => 3
[event_start_date] => 2013-09-12
[event_date_added] => 2013-02-26 14:36:06
[event_status_id] => 2
[event_type_id] => 4
[tutor_id] => 0
[tutor_confirmed] => 0
[event_featured] => 0
[event_push] => 0
[event_active] => 0
[invigilator_id] => 0
[event_discount] =>
[event_max_delegates] => 16
[location_id] => 1
[venue_id] => 1
[supplier_id] => 2
)
[1] => stdClass Object
(
[id] => 1
[course_name] => Course Name
[course_description] => Course Description
[course_price] => 995
[supplier_name] => Supplier 1
[location_country_code] => GB
[location_country] => United Kingdom
[location_city] => London
[venue_name] => Venue Name
[venue_address] => Street
[venue_postcode] => EC2M 7PQ
[venue_city] => London
[venue_county] =>
[venue_country] => United Kingdom
[venue_locality] =>
[event_type] => Private Venue
[event_status] => Provisional
[course_id] => 1
[event_duration] => 3
[event_start_date] => 2013-11-13
[event_date_added] => 2013-02-26 09:56:17
[event_status_id] => 1
[event_type_id] => 3
[tutor_id] => 0
[tutor_confirmed] => 0
[event_featured] => 0
[event_push] => 0
[event_active] => 0
[invigilator_id] => 0
[event_discount] => 395
[event_max_delegates] => 16
[location_id] => 1
[venue_id] => 1
[supplier_id] => 1
)
)
내가 다리를 사용하여 이벤트에 부착 된 대표를 끌어 그, 액티브를 사용하여 각 행의 키 '대표'에 중첩 된 개체를 추가하고 싶습니다 : 이벤트 객체
처럼 보이는 해당 테이블의 'event_id'및 'delegate_id'열을 비교하여 'events_delegates_bridge'테이블을 만듭니다.
Array
(
[0] => stdClass Object
(
[id] => 2
[course_name] => Course 3
[delegates] => Array
(
[0] => stdClass Object
(
[id] => 1
[name] => Joe Bloggs
)
[1] => stdClass Object
(
[id] => 2
[name] => Joe Smith
)
[3] => stdClass Object
(
[id] => 3
[name] => Jane Doe
)
)
[course_description] => Course
[course_price] => 995
[supplier_name] => Supplier 3
[location_country_code] => GB
[location_country] => United Kingdom
[location_city] => London
[venue_name] => Venue 2
[venue_address] => 2 Street
[venue_postcode] => EC2M 7PQ
[venue_city] => London
[venue_county] =>
[venue_country] => United Kingdom
[venue_locality] =>
[event_type] => Materials Only
[event_status] => Confirmed
[course_id] => 2
[event_duration] => 3
[event_start_date] => 2013-09-12
[event_date_added] => 2013-02-26 14:36:06
[event_status_id] => 2
[event_type_id] => 4
[tutor_id] => 0
[tutor_confirmed] => 0
[event_featured] => 0
[event_push] => 0
[event_active] => 0
[invigilator_id] => 0
[event_discount] =>
[event_max_delegates] => 16
[location_id] => 1
[venue_id] => 1
[supplier_id] => 2
)
)
모든 아이디어가 최선의 방법이를 달성하기 : 있도록 는 기본적으로 개체가 너무처럼 보인다? 감사.
이벤트 모델 클래스 Event_Model는 CI_Model {
public function get_events() {
$this->db->select('*');
$this->db->from('courses');
$this->db->from('suppliers');
$this->db->from('locations');
$this->db->from('venues');
$this->db->from('event_type');
$this->db->from('event_status');
$this->db->join('events', 'events.course_id = courses.id AND events.supplier_id = suppliers.id AND events.location_id = locations.id AND events.venue_id = venues.id AND events.event_type_id = event_type.id AND events.event_status_id = event_status.id', 'inner');
$this->db->order_by('events.event_start_date', 'asc');
$query = $this->db->get();
return $query->result();
}
}
대시 컨트롤러 $ 데이터 [ '이벤트'] = $ this-> event_model-> get_events()을 확장;
대리모 모델 위임 데이터를 가져 오기 위해 생성했습니다. 이벤트 객체에 올바른 델리게이트를 추가하는 데 사용할 수 있다고 생각합니까?
class Delegate_Model extends CI_Model {
public function get_delegates() {
$this->db->select('*');
$this->db->from('delegates');
$this->db->from('events_delegates_bridge');
$this->join('delegates', 'delegates.id = events_delegates_bridge.delegate_id', 'inner');
$query = $this->db->get();
return $query->result();
}
}
그냥 테스트하여 빈 페이지를 표시합니다.
그래도 활성 레코드를 사용하고 싶습니까? –
원하는 경우'-> query()'비트를 해당 활성 레코드로 대체 할 수 있습니다. –
이벤트 모델과 $ 데이터 객체를 대시 보드 컨트롤러에 추가하여 질문을 편집 했으므로 이벤트를 어떻게 처리하는지 확인할 수 있습니다. 내가 설명했던 것을 어떻게 통합 할 것인가? 나는 CodeIgniter를 처음 사용했다. –