ฉันใช้เฟรมเวิร์ก Yii และฉันมี 3 ฟิลด์ในตารางของฉันชื่อ Table_Details และฟิลด์คือ table_number, ที่นั่ง และ admin_id ฉันต้องการป้อน table_number ที่ไม่ซ้ำกันสำหรับแต่ละ admin_id หากฉันใช้การตรวจสอบที่ไม่ซ้ำกันสำหรับฟิลด์ table_number มันจะแทรก table_number เท่านั้น หนึ่งครั้งในตาราง แต่ฉันต้องการแทรก table_number โดยไม่ซ้ำกันสำหรับแต่ละ admin_id
ไม่ซ้ำกันยื่นตามรหัสผู้ดูแลระบบใน yii
คำตอบ (1)
คุณสามารถกำหนดกฎของคุณเองได้ เช่น.
public function rules()
{
return array(
array('table_number', 'uniqueTable', "on" => "insert"),
);
}
และกำหนดฟังก์ชัน uniqueTable
ในโมเดลของคุณ:
public function uniqueTable($attribute,$params)
{
$record=TableDetail::model()->findByAttributes(array('table_name'=>$this->table_name, "admin_id" => Yii::app->user->id));
if(count($record) > 0){
$this->addError($attribute, 'You already have a table with this name');
}
}
person
Preetam
schedule
13.05.2013