2013-06-17 1 views
3

Я создаю приложение cakephp 2.x. В середине развития я неожиданно обнаружил ошибку «стол не найден».Таблица для модели не найдена в datasource по умолчанию

Missing Database Table 

Error: Table blocked for model Parental was not found in datasource default. 

Notice: If you want to customize this error message, create project\View\Errors\missing_table 

Я проверил свою базу данных, и соответствующая таблица на самом деле была там.

Далее я пытаюсь отладить модель. Модель может получить доступ к таблице. Ошибка о том, что cakephp не может найти данные, сохраняется.

Это то, что я получаю, когда я отладки модели:

\project\Controller\ParentalsController.php (line 5) 
object(Parental) { 
    useTable => 'blocked' 
    useDbConfig => 'default' 
    id => null 
    data => array() 
    schemaName => null 
    table => 'blocked' 
    primaryKey => 'id' 
    validate => array() 
    validationErrors => array() 
    validationDomain => null 
    name => 'Parental' 
    alias => 'Parental' 
    tableToModel => array(
     'blocked' => 'Parental' 
    ) 
    cacheQueries => false 
    belongsTo => array() 
    hasOne => array() 
    hasMany => array() 
    hasAndBelongsToMany => array() 
    actsAs => null 
    Behaviors => object(BehaviorCollection) { 
     modelName => 'Parental' 
     defaultPriority => (int) 10 
    } 
    whitelist => array() 
    cacheSources => true 
    findQueryType => null 
    recursive => (int) 1 
    order => null 
    virtualFields => array() 
    __backAssociation => array() 
    __backInnerAssociation => array() 
    __backOriginalAssociation => array() 
    __backContainableAssociation => array() 
    findMethods => array(
     'all' => true, 
     'first' => true, 
     'count' => true, 
     'neighbors' => true, 
     'list' => true, 
     'threaded' => true 
    ) 
} 

Я также попробовал следующее создание новой таблицы вместо для модели использования. Модель может получить доступ к новой таблице, но CakePHP все еще не может обнаружить эти новые таблицы.

Просьба сообщить.

+1

включить debug, показать некоторые конкретные сообщения об ошибках и детали. – AD7six

+0

Какая ошибка? –

+0

@Charmie У меня есть этот вопрос раньше, и я отредактировал ваш вопрос, чтобы сделать его более кратким. Я также предоставил вам решение. Учитывая, что мой ответ был проголосован как минимум дважды, и комментарий, в котором мой ответ спас их жизни, я предлагаю вам также дать свой ответ. Если это сработает для вас, сделайте правильный ответ. –

ответ

12

Я нашел этот вопрос, когда я искал Google.

У меня была аналогичная проблема.

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

Я даже очистил файлы в кеш-кеке несколько раз безрезультатно.

Затем я изменил режим отладки от 0 до 2. Вдруг ошибка исчезла.

Затем я изменил режим отладки от 2 до 0. Ошибка все еще исчезла.

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

UPDATE: я понял, что для одного из моих приложений, которые часто имеют эту проблему, как-то Дженкинс задача вызывает некоторые файлы TMP/кэш/настойчива, чтобы файлы в неправильном пользователь: группа.

Я исправил это вчера. На данный момент эта проблема еще не появилась. Если проблема не возникла через 10 дней или около того, я объявлю, что проблема связана с тем, что файлы tmp не имеют права доступа или пользователя: групповое владение.

+2

Сохранял мою жизнь. Такое же странное поведение здесь. = \ –

+1

жаль, что я не смог вернуться сюда ... но эй, это был тот, который мне предложил мой друг, и он на самом деле работал назад раньше :) ... для будущих ссылок на других, ответ Кимсии действительно работает :) – Charmie

+0

@Charmie Нет проблем. Если я нахожу причину объяснить, почему это происходит, или решение, которое решает это, я также обновлю ответ. –

0

Для тех, которые имеют эту подобную проблему:

Я уважал конвенцию торта слишком, но это было до сих пор не удалось найти эту таблицу. Я пробовал метод с 'debug 2/0' без успеха.

«Магия» произошла, когда я загрузил другую модель, которую я создал, - только сначала, а затем и то, и другое. Этот метод работал для меня.

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