Не удалось вызвать Doctrine_Core :: set (), второй аргумент должен быть экземпляром Doctrine_Record или Doctrine_Null при установке ссылок один на один - PullRequest
0 голосов
/ 07 апреля 2011

Я пытаюсь обновить внешний ключ в processForm () и получить эту ошибку. Это действительное значение Я могу без проблем установить значения в обычное поле, эта ошибка появляется только при попытке обновить внешние ключи

Таким образом я получаю ошибку:

$form->getObject()->setPriority(1);

Таким образом, я не получаю ошибку, но тоже не работает:

$form->getObject()->setPriorityId(1);

Схема:

schedule:
  columns:
    id:
      primary: true
      type: integer
      notnull: true
      autoincrement: true
    sdate:
      type: date
      notnull: true
    stime:
      type: time
      notnull: true
    scope:
      default: 1
      type: boolean
    schedule_count:
      default: 0
      type: integer(4)
    reschedule_justify:
      type: string
    priority_id:
      type: integer
      notnull: true
    schedule_type_id:
      type: integer
      notnull: true
    pending_id:
      default: NULL
      type: integer
    cancelled_id:
      default: NULL
      type: integer
    scheduled_by:
      type: integer
      notnull: true
    in_charge:
      type: integer
      notnull: true
    so_id:
      unique: true
      type: integer
      notnull: true
  relations:
    priority:
      local: priority_id
      foreign: id
    scheduleType:
      local: schedule_type_id
      foreign: id
    cancelled:
      onDelete: SET NULL
      local: cancelled_id
      foreign: id
    pending:
      onDelete: SET NULL
      local: pending_id
      foreign: id
    ScheduledBy:
      class: employee
      local: scheduled_by
      foreign: id
    InCharge:
      class: employee
      local: in_charge
      foreign: id
    soOrder:
      local: so_id
      foreign: id
    Employees:
      class: employee
      refClass: schedule_employee
      local: schedule_id
      foreign: employee_id
priority:
  actAs:
    SoftDelete: 
  columns:
    id:
      primary: true
      type: integer
      notnull: true
      autoincrement: true
    name:
      unique: true
      type: string(255)
      notnull: true
    img:
      type: string(255)

Это основные таблицы, которые я использую, я в расписании и пытаюсь обновить приоритет

1 Ответ

0 голосов
/ 08 апреля 2011

Итак, ваша задача - вручную установить отношение «Приоритет» для объекта «Расписание» перед его сохранением.

// PriorityForm
class ScheduleForm extends BaseScheduleForm
{
  public function doSave($con = null)
  {
    //update object with form values (not necessary in your case, but will be if you need to
    //use values that were in form
    $this->updateObject();

    $priority = Doctrine::getTable('Priority')->findOneById(1);
    $this->getObject()->setPriority($priority);

    return parent::doSave($con);
  }
}
...