プロジェクトにsymfony 1.4を使用しています(すでに開始されています)。現在、いくつかのものを変更しています.2つのテーブル間の情報を照会すると、関係のエラーが発生します.1つはすでに存在し、もう1つは新しいものです。最初のテーブルを指す外部キーがあります。
このようなエラーメッセージが表示されます
exception 'Doctrine_Table_Exception' with message 'Unknown relation alias ' in /var/www/testorange/symfony/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Relation/Parser.php:237
Stack trace: #0 /var/www/testorange/symfony/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Relation/Parser.php(235): Doctrine_Relation_Parser->getRelation('', false)
...
そしてさらに多くのエラー。
したがって、symfony での定義にテーブルがまだ適切な関係を持っていないためだと思います (それらは既に私の DB に関連付けられています)。
この行を自分の schema.yml に追加してから [UPDATED]
OhrmTrainningSubmit:
connection: doctrine
tableName: ohrm_trainning_submit
columns:
id_trainning_submit:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
trainning:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
trainning_detail:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
answer:
type: string(250)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
state:
type: integer(1)
fixed: false
unsigned: false
primary: false
default: '0'
notnull: true
autoincrement: false
user:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
relations:
OhrmUser:
local: user
foreign: emp_number
type: many
OhrmTrainning:
local: trainning
foreign: id_trainning
type: many
これは OhrmUser の定義です
OhrmUser:
connection: doctrine
tableName: ohrm_user
columns:
id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
user_role_id:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
emp_number:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
user_name:
type: string(40)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
user_password:
type: string(40)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
deleted:
type: integer(1)
fixed: false
unsigned: false
primary: false
default: '0'
notnull: true
autoincrement: false
status:
type: integer(1)
fixed: false
unsigned: false
primary: false
default: '1'
notnull: true
autoincrement: false
date_entered:
type: timestamp(25)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
date_modified:
type: timestamp(25)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
modified_user_id:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
created_by:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
relations:
HsHrEmployee:
local: emp_number
foreign: emp_number
type: one
OhrmUserRole:
local: user_role_id
foreign: id
type: one
HsHrMailnotifications:
local: id
foreign: user_id
type: many
OhrmLeaveAdjustment:
local: id
foreign: created_by_id
type: many
OhrmLeaveComment:
local: id
foreign: created_by_id
type: many
OhrmLeaveEntitlement:
local: id
foreign: created_by_id
type: many
OhrmLeaveRequestComment:
local: id
foreign: created_by_id
type: many
OhrmTimesheetActionLog:
local: id
foreign: performed_by
type: many
参照を作成したいテーブルで、参照を作成するフィールドは、テーブル「OhrmUser」への「user」からフィールド emp_number へ(この方法で正しいはずだと思います)、問題はまだ同じエラーです、誰かがこれについて考えていますか?他にすべきことはありますか?
追加した後、これを実行します
php symfony cc
php symfony doctrine:build-model
php symfony orangehrm:publish-assets
php symfony cc
クエリ
try{
$q = Doctrine_Query::create()
->select('*')
->from('OhrmTrainningSubmit TS')
->innerJoin('TS.OhrmUser U')
->addWhere("TS.trainning = $training")
->andWhere("TS.user = $employee");
$result = $q->execute();
return $result;
}catch(Exception $e){
print_r ($e->getMessage());
return null;
}
OhrmTrainningSubmit のデータにしかアクセスできないのですが、User のフィールドにアクセスしようとすると内部エラーが発生します。
このコードでエラーが発生します
foreach ($detail as $det){
echo $det['answer']; // This is printed with no problem
//echo $det['user_name']; <-- this one comes from the table OhrmUser, I get server error with this one
}
$detail は、クエリの戻り値を持つ変数です。
私が作るとき
->select('TS.*, U.*')
他のエラーが表示されます。
不明なプロパティ emp_number
何か案が?
前もって感謝します。