Ошибка ORA-00936 в Laravel Красноречивая связь - PullRequest
0 голосов
/ 16 января 2020

Прежде всего, извините, мой Engli sh,

Я использую базу данных oracle У меня отношения один к одному между двумя моделями

Class A
{
public function ARelation{
    return $this->hasOne(B::class,’Table_A_ID’,’id’);
}}
Class B
{

public function BRelation{

    return $this->belongsTo(A::class,’Table_A_ID’,’id’);
}}

Теперь, когда я пытаюсь

A::with(’Arelation’)->get();

Я получаю следующую ошибку

PHP предупреждение oci_execute (): ORA-00936: отсутствует выражение в пути / vendor / yajra / laravel -pdo-via -oci8 / src / Pdo / oci8 / Statement. php в строке 159 Подсветка / База данных / QueryException с сообщением Код ошибки: 936 Сообщение об ошибке: ORA-00936: отсутствует выражение Позиция: 74 Оператор: выберите * из «Table_B» где ( "Table_B". "Table_A_ID" в (от 0,1,2,3,4 до 3999) или или или или "Table_B". "Table_A_ID" в (4000,4001,4002, до 4999) или или или это повторяется пока он не достигнет последнего идентификатора в моих данных, который составляет 10K Bindings: [] выберите * из «Table_B» где («Table_B». «Table_A_ID» в (от 0,1,2,3,4 до 3999) или или или или » Table_B ”.” Table_A_ID ”в (4000,4001,4002, до 4999) или или, или это будет повторяться до тех пор, пока не достигнет последнего идентификатора в моих данных a, который равен 10K

на основе моего поиска и всех учебных пособий, которые я видел, этот код должен выполняться, но в моем случае по неизвестной причине он не работает

1 Ответ

0 голосов
/ 16 января 2020

Прежде всего у вас есть ошибка опечатки. Это должно быть

A::with(’Arelation’)->get();

Кажется, что призвание каждого отношения вошло в бесконечность. Как после вызова Arelation, он снова вызовет BRelation, а Arelation снова снова в BRelation. Я подозреваю, что, возможно, в вашем классе B вы добавили BRelation, который дал такой результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...