#php #filemaker
#php #filemaker
Вопрос:
Я смог успешно создавать записи в таблице, которая не имеет внешних ключей, но постоянно сталкиваюсь с ошибкой «Поле не может быть изменено» при попытке установить внешний ключ в таблице, которая имеет внешний ключ к первой таблице. Каков правильный способ установки внешнего ключа в таблице через PHP API?
$data = array(
"_fk_LeadID" => '24',
"Date" => "12/12/2016",
"Result" => "Still Investigating",
"Sales_Rep" => "Joe",
"Time" => "9:00PM"
);
$rec = $fm->createRecord('Appointments', $data);
$result = $rec->commit();
if (FileMaker::isError($result)) {
echo "<p>Error: " . $result->getMessage() . "</p>";
exit;
}
Я просматривал документацию по PHP, и в ней упоминались порталы, но у меня не было ни одной настройки для этих таблиц, поэтому я не смог их использовать. Каков правильный способ установки внешнего ключа в таблице?
Ответ №1:
Ваш код в порядке, и проблема на самом деле не связана с PHP. FileMaker PHP не имеет каких-либо специальных функций для создания внешних ключей или даже первичных ключей.Итак, проблема на стороне сервера FileMaker.
У вас ошибка, что одно из полей не поддается изменению. Скорее всего, это поле вычисления (столбец, заполненный триггером). Я бы попытался установить поля вручную в FileMaker и посмотреть, выдаст ли он вам ту же ошибку (я подозреваю, что так и будет).
Если вы не можете использовать FileMaker, создайте запись только с _fk_LeadID и посмотрите, есть ли ошибка, затем начните добавлять по одному полю за раз. Поле, которое выдает ошибку, вероятно, является вычислением. Например, Дата и время могут быть автоматически заполненными датой и временем создания записи.
Комментарии:
1. Ошибка, по-видимому, вызвана опцией «Запретить изменение значения во время ввода данных»., есть ли способ создать запись с включенным этим параметром?
2. Вы можете отключить его, но, скорее всего, он существует по какой-то причине. Старайтесь не устанавливать этот столбец в своем коде. Скорее всего, он будет заполнен правильным значением.