2011-12-24 7 views
0

マイフォルダ/名前空間の階層:リチウム関係の名前空間がバグですか?

  • アプリ/モデル/エンティティ
    • Entities.php
      • People.php
      • (他のモデル)

私はこの質問ごとの指示に続く:「lithium fill multiple models from viewを、エラーを得たが、ストリームをオープンに失敗しましたありません:Cでそのようなファイルまたはディレクトリ:\ xamppの\ htdocsに\ PhiCRM \ライブラリを\リチウム\コア\ Libraries.php私は

public $belongsTo = array(
    'People' => array(
     'class' => '\app\models\entities\people\People', 
     'key' => 'person_id', 
    ), 
); 

を変更:あなたは上で見たように、その

マイ修正の下に示すのconfigs配列で示されている別のフォルダ、にネストcuzの、いや...ライン468" 、上

public $belongsTo = array(
    'people\People' => array(
     'class' => '\app\models\entities\people\People', 
     'key' => 'person_id', 
    ), 
); 

となり、エラーは消えます(2番目の行が 'People'から 'People \ People'に変更されました)が、今度はエラーが発生します: '関連モデルクラス' app \ models \ entities \ people \ people \ People ' 見つかりません。' C:\ xampp \ htdocs \ PhiCRM \ libraries \ lithium \ data \ model \ Relationship.phpの159行にあるので、パス文字列の別の人に触れます。

私の質問:これは意図した動作ですか?関係モデルはクラス名との文字列連結の代わりに$ configs配列で提供したクラスパスを使うべきではありませんか?そのバグの場合、私はそれを報告する必要があります、どのように? librarires /リチウム/データ/モデル/ Relashionships.phpで

答えて

1
public $belongsTo = array(
    'People' => array(
     'to' => '\app\models\entities\people\People', 
     'key' => 'person_id', 
    ), 
); 

ではなく、 'クラス' の 'に' ベターで動作するはずです;-)

0

は、115 lnを、元のコードがある:

if (!$config['to']) { 
     if(!$config['class']){ 
      $assoc = preg_replace("/\\w+$/", "", $config['from']) . $name; 
     } 
     else{ 
      $assoc = $config['class']; 
     } 
     $config['to'] = Libraries::locate('models', $assoc); 
    } 

に変更

if (!$config['to']) { 
     $assoc = preg_replace("/\\w+$/", "", $config['from']) . $name; 
     $config['to'] = Libraries::locate('models', $assoc); 
    } 

は、フレームワークは、関連するモデルがであろう前提と思えます同じ名前空間。クラスの設定がモデルのリレーションシップ宣言に記入されていれば、代わりにそれを使用するように変更しました。

関連する問題