테이블의 기본 키가 id
컬럼이 아닌 경우 fuelphp에서 ORM을 사용하여 레코드를 찾을 수있는 방법이 있습니까? 예 : listing_id
이 내 기본 키입니다. 그리고 내가 원하는 결과 얻을 수 없었다 :id가 fuelphp의 기본 키가 아닌 레코드를 찾으십시오.
$listing_id = Input::get('listing_id');
$entry = Model_ExampleData::find($listing_id);
테이블의 기본 키가 id
컬럼이 아닌 경우 fuelphp에서 ORM을 사용하여 레코드를 찾을 수있는 방법이 있습니까? 예 : listing_id
이 내 기본 키입니다. 그리고 내가 원하는 결과 얻을 수 없었다 :id가 fuelphp의 기본 키가 아닌 레코드를 찾으십시오.
$listing_id = Input::get('listing_id');
$entry = Model_ExampleData::find($listing_id);
보호 정적 기본적으로 $ _primary_key
이이 배열 ('ID')로 설정되어, 다른 열 이름을 사용하는 경우 또는 이 속성을 설정해야하는 여러 기본 키. 독특하고 불변 :
class Model_Article extends Orm\Model
{
protected static $_primary_key = array('aid');
}
기본 키는 실제 기본 키가 있어야합니다
. 다른 목적 (일대일 관계의 외래 키와 같은)으로도 사용하지 마십시오. PK를 변경할 수 없으므로 작동하지 않습니다. Orm은 이것을 확인하지 않을 것이며, 언뜻보기에는 작동하는 것처럼 보일 수 있지만 문제가 발생할 것입니다. PK가 auto_increment (권장 됨)가 될 필요는 없으며 처음으로 PK를 직접 지정할 수 있습니다. 일단 설정되면 설정됩니다.
Docs.
당신은이 목적을 위해 마법의 방법 접두사가이 접두사를 추가 find_by_
, 당신은 모델 구성을 수정없이 모델 에서 임의의 필드를 사용하여 레코드 (들)을 찾기 위해 FuelPHP 말해, 여러 수 조건은 분할 필드 이름이 _and_ 사이 인 경우 가능합니다.
Model_ExampleData::find_by_FIELD($value)
Model_ExampleData::find_by_FIELD1_and_FIELD2($value1, $value2)
Model_ExampleData::find_all_by_FIELD($value)
Model_ExampleData::find_all_by_FIELD1_and_FIELD2($value1, $value2)
Model_ExampleData::count_by_FIELD($value1)
데이터베이스 연결의 프로파일 러와 프로파일 링을 활성화하면 아래의 대답으로 인해 생성 된 SQL이 올바르지 않은 것을 알 수 있습니다. 그것 upvote 것을 잊지 마세요! – WanWizard