【问题标题】:Eloquent model belongsTo relationship not working in L4雄辩的模型属于关系在 L4 中不起作用
【发布时间】:2015-03-18 11:21:50
【问题描述】:

我有以下表格:

用户

    Schema::create('users', function(Blueprint $table)
    {
        $table->increments('id');
        $table->string('username', 30);
        $table->string('email')->unique();
        $table->string('password', 60);
        $table->string('remember_token')->nullable();
        $table->timestamps();
    });

组织

    Schema::create('organisations', function(Blueprint $table)
    {
        $table->increments('id');
        $table->string('name')->unique('name');
        $table->integer('owner_id')->unsigned()->index()->nullable();
        $table->foreign('owner_id')->references('id')->on('users');
        $table->timestamps();
    });

我有以下组织 Eloquent 模型:

class Organisation extends Eloquent {

    /**
     * @return \Illuminate\Database\Eloquent\Relations\HasOne
     */
    public function owner()
    {
        return $this->belongsTo('User', 'owner_id', 'id');
    }

}

在我的控制器上,我加载所有 organisations 并将其传递给视图,如下所示:

public function index()
{
    return View::make('organisations.index')
        ->with('organisations', Organisation::all());
}

在我看来,当我尝试像这样显示数据时:

@foreach($organisations as $organisation)
    <div>
        Name : {{  $organisation->name }}
        <br>
        Owner: {{ $organisation->owner()->email }}
    </div>
@endofreach

当我这样做时,我得到一个对象是 null 异常。

我也尝试过使用hasOne 关系,但也没有用。

知道我在这里可能做错了什么吗?

【问题讨论】:

    标签: php laravel laravel-4 orm eloquent


    【解决方案1】:

    试试这个:

    @foreach($organisations as $organisation)
        <div>
            Name : {{  $organisation->name }}
            <br>
            Owner: {{ $organisation->owner->email }}
        </div>
    @endforeach
    

    没有() 的所有者。就像你得到一个 Model\User 对象而不是一个 belongsTo 对象。 BelongsTo 对象不包含任何用户信息,但允许您添加更多有说服力的方法来过滤查询。

    【讨论】:

    • 谢谢,现在可以使用了。我没有意识到它被用作属性而不是方法。
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 2019-02-12
    • 1970-01-01
    相关资源
    最近更新 更多