Kohana 3.2 создание модели для таблицы с подчеркиванием в ее названии

У меня возникли проблемы при создании модели для таблицы с именем product_details, и после поиска иногда я нашел этот ответ

Kohana 3.2: вызов модели с подчеркиванием в имени

Согласно ответу, я прибег к следующему подходу. Я создал Model_Product_Details, затем я объявил protected $_table_name = 'product_details'; а затем сохранил его в приложении / classes / models / product_detail.php

И я назвал это в контроллере с этим кодом:

$product_details = ORM::factory(product_detail);

Но, черт возьми, это не сработало. возвращенная ошибка была ErrorException [ Fatal Error ]: Class 'Model_Product_detail' not found

Я попытался переименовать таблицу, модель и имя файла, удалив подчеркивание, и это сработало. Но дело в том, что база данных, которую я использую, принадлежит устаревшей системе, поэтому я не могу изменить ее имя. Я надеюсь, мог бы помочь мне немедленно.

3 ответа

Решение

Проанализировав ответ по ссылке, которую я предоставил в третий раз (я думаю), ссылаясь на использованный мной подход, я просто должен удалить подчеркивание только из имени файла и названия модели.

Так вот как это исправить. Допустим, у вас есть таблица с именем product_details. Вы должны создать Model_ProductDetail, а затем изнутри объявить защищенный $_table_name = 'product_details'; затем сохраните его как productDetail.php

Проблема, которую вы описываете, заключается не в отсутствующей или ошибочной таблице, а в имени объекта. Когда в имени модели используются подчеркивания, после части Model_ каждое подчеркивание рассматривается как папка. Для класса с именем Model_Product_Details Коана ожидает, что файл details.php будет находиться в папке models/product/details.php.

protected $_table_name = 'product_details'; 

должен указывать на таблицу на правильном пути

В этом случае вам нужно переименовать вашу модель в productDetails, Kohana ищет эту модель в model/product подкаталог. Смотрите это здесь: ссылка.

"Имена классов CamelCased должны использоваться, когда нежелательно создавать новый уровень каталога".

Другие вопросы по тегам