私は phalcon を初めて使用し、Symfony のバックグラウンドから来ました。phalcon モデルで外部キー間のオプションの関係を定義する方法を知る必要があるだけです。
つまり、Users テーブル PK は user_id であり、ユーザーは Photos テーブルに (オプションの) 関連レコードを持ち、プライマリ キー photo_id を持つ写真を持ち、'user_id' でリンクされている可能性があります。
したがって、私のファルコンモデルでは、写真がある場合はユーザーに写真をロードする必要があります。
ユーザーモデルで
public function initialize()
{
$this->hasMany(
"photo_id",
"Photo",
"photo_id",
array(
'alias' => 'photos'
)
);
}
写真モデルで私はそれを次のように書きます
public function initialize()
{
$this->belongTo(
"user_id",
"User",
"user_id",
array(
'alias' => 'user'
)
);
}
経由でアクセスするためのボルトで
{{user.photo.photo_id}}
しかし、これは私にエラーを与えます
Undefined property: Phalcon\Mvc\Model\Resultset\Simple::$photo_id
何か案が ?
奇妙なことに、コントローラーでこのコードを実行すると、機能して写真モデルを取得できますが、遅延読み込みでアクセスしようとすると機能しません/
$users = User::find(array(
"limit" => 10)
);
echo "There are ", count($users), "\n";
foreach($users as $user){
$photos = Photo::find(array(
"user_id=:user_id:",
"limit" => 10,
"bind" => array("user_id" => $user->user_id)
)
);
if($photos->count()==0){
echo "<br />";
echo "No photo found for user".$user->user_id;
}
foreach($photos as $photo){
echo '<br />';
echo "User ->".$photo->user_id." Photo -> ".$photo->photo_id;
}
}
このように遅延読み込みでやろうとすると
foreach($users as $user){
//echo $user->photos->photo_id;
foreach($user->photos as $photo){
echo '<br />';
echo "User ->".$photo->user_id." Photo -> ".$photo->photo_id;
}
}
エラーが発生します:
未定義のプロパティ: Phalcon\Mvc\Model\Resultset\Simple::$photo_id