2015-02-12 5 views
1

В настоящее время работает над Cakephp 2.x и проходит следующую ошибку. Мы обновляем старый проект, который написан в процедурной php, чтобы выложить php с большим количеством понятий. Поэтому мы должны использовать существующую базу данных, которая не имеет каких-либо конвенций для торта. В настоящее время проблема, с которой я столкнулся, - это таблица, называемая tranz_vehicle в базе данных. У меня есть модель с именем vehicle.php и Ниже приведен код для негоМодель Cakephp не работает

<?php 
class Vehicle extends AppModel{ 

    public $useTable="tranz_vehicle"; 

} 
?> 

Даже после того, как я использовал $ useTable, Он показывает следующие ошибки

Таблицы транспортные средства для модели автомобиля не были найдены в источнике данных по умолчанию.

Я не могу изменить название таблицы .. Любые предложения? В общем, новичок в cakephp

Также есть пользователи таблиц в базе данных уже, и я создал пользователя модели, и он отлично работает. Проблема с остальными таблицами, такими как tranz_vehicle

+0

имя таблицы должно быть множественным транспортным средством, а название модели должно быть сингулярным –

+0

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

ответ

3

Является ли ваше имя файла модели Vehicle.php или vehicle.php? Если это строчная буква, которая означает, что ваша модель генерируется на лету и не может читать useTable из файла, потому что она не использует этот файл. Также вы можете показать свой первичный ключ таблицы? Если это не «id», вы должны указать его с помощью этого кода.

public $primaryKey = 'example_id'; 
+0

спасибо, что это сработало отлично –

+0

Добро пожаловать :) –

0

Не забудьте очистить TMP/кэш/модели и TMP/кэш/стойкие перед чем.

Чтобы заставить CakePHP использовать другой БД, у вас есть в основном два варианта:

1) Используйте таблицу префиксов

class Example extends AppModel { 
public $tablePrefix = 'alternate_'; // will check 'alternate_examples' table 

}

2) Использование $ useTable, как вы делали

class Exemple extends AppModel { 
public $useTable = 'exmp'; // will check 'exmp' table 

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