2014-09-30 3 views
0

Здравствуйте, дорогие StackOverflowers, я новичок в Cake PHP. Я хочу получить доступ к двум студентам и преподавателям в одной модели. Как это сделать ? Выпечка торта производит контроллеры, модели и виды только для ОДНОГО ТАБЛИЦЫ. Я не хочу использовать третью модель для доступа к ним, если можно использовать одну модель для доступа к двум таблицам. Спасибо.Доступ к нескольким таблицам CakePhp в одной пользовательской модели

+2

У вас должна быть модель для каждой таблицы. Затем вы можете вызывать любую модель из любой модели –

+0

Можете ли вы описать, что вы пытаетесь выполнить (т. Е. Заявление о проблеме бизнеса)? Технически в качестве основы для модели может использоваться только одна таблица, но есть методы для добавления других таблиц (например, с использованием представлений SQL, предложения JOIN в методе QUERY). Эти методы имеют ограничения. – AgRizzo

+0

Спасибо AgRizzo за ваш быстрый ответ. Я хочу отобразить форму данных и мои таблицы на одной странице, но Cake создал два контроллера, две модели и два представления, и у обоих есть свои собственные цепочки. – Meer

ответ

0

Я не думаю, что это хороший подход, потому что это против конвенции один стол - одна модель, но, конечно, зависит от вас. Вы можете изменить таблицу на лету, используя общедоступное поле $useTable.

$this->ModelName->useTable = 'table_name'; 

Так что в этом случае вы должны установить эту переменную каждый раз, когда выполняете какие-либо действия в базе данных. Вместо того, чтобы просто позвонить $this->ModelName->find();, вы всегда должны добавить дополнительную строку перед оператором find(), чтобы убедиться, что ваши запросы идут в соответствующую таблицу.

+0

Спасибо, дорогой marian0 за быстрый ответ. от ModelName в выражении вы имеете в виду мою пользовательскую модель? и, как вы упомянули соглашение, одна таблица - одна модель, поэтому я должен получить доступ к каждой таблице с помощью одной модели, а затем получить доступ к обеим таблицам с третьей моделью?или просто использовать эти модели в моем контроллере? – Meer

+0

Да, я имею в виду вашу пользовательскую модель от 'ModelName'. Поэтому зависит от того, какие данные вам нужно получить, но в большинстве случаев вам просто нужно использовать свои модели в контроллере. Если у вас есть реальность между таблицами, вы можете настроить их в одной модели, а затем просто вызвать эту конкретную модель, и у вас есть данные из всех ваших дефинированных моделей. – marian0

+0

Я принял ваш совет и использовал одну модель для каждой из моих таблиц и понял, что модель ведет себя так, как будто я напрямую контактирую с таблицей. Я создал свой собственный контроллер и мой собственный просмотр и удаленные представления и контроллеры, созданные Cake Bake. Еще раз спасибо. – Meer

Смежные вопросы