0

モデルの関係を従来の方法で定義してもらいましたが、うまく機能しています。しかし、バリデーションを簡単にするために Ardent を使い始めたところ、Eloquent の関係を定義するための便利な機能があることに気付きました。

https://github.com/laravelbook/ardent#relations

これを文脈に入れるために、場所(この例では地理的)に属しているユーザーモデルがあります。

以前は、次を使用していました。

public function location(){
    return $this->belongsTo('Location', 'location');
}

私は何の問題もありませんでした。Ardent の方法に切り替えることで、次のような結果が得られました。

protected static $relationsData = array(
    'location' => array(self::BELONGS_TO, 'Location', 'foreignKey' => 'location')

    );

ユーザーの場所ではなく、常に null を返します。

ユーザー.php

use LaravelBook\Ardent\Ardent;

class User extends Ardent implements UserInterface, RemindableInterface {

    protected static $table = 'agents';
protected static $relationsData = array(
    'location' => array(self::BELONGS_TO, 'Location', 'foreignKey' => 'location')

    );

}

データベース エージェント ID: int(11) PK の場所: int(11) FK(locations.id)

*locations*
    id: int(11) PK
    longtext: text

同じだけで構文が異なるため、これが何も返さない理由がわかりません。

Laravel のやり方に戻ることもできますが、私は Ardent の構文の方が好きです。

4

1 に答える 1

0

列名/関係の衝突の単純なケース。

于 2014-02-05T17:15:58.967 に答える