在我的应用程序中,我有 Event 和 User 模型。由于 Event 模型,我必须将其放入命名空间。所以我创建了如下命名空间。
事件
<?php namespace App\Models;
class Event extends \Eloquent {
public function user()
{
return $this->belongsTo('User');
}
用户
<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
use App\Models\Event;
class User extends Eloquent implements UserInterface, RemindableInterface {
public function events()
{
return $this->hasMany('Event');
}
User 和 Event 之间的关系是简单的 OneToMany。所以在我的EventController中,我使用 POST 方法来创建新的事件资源。
$e = new Event(array('keys'=>'values')); //without user_id filled
$user->events()->save($e);
同时我得到一个错误。
Call to undefined method Illuminate\Support\Facades\Event::newQuery()
如果我没记错的话,我猜这是命名空间错误。但我猜命名空间已经正确声明了。但我尝试访问类似的问题并在关系中使用替代方式,然后效果很好。我个人觉得不满意。知道为什么会发生这种情况吗?
将上述关系更改为
public function events()
{
return $this->hasMany('\App\Models\Event');
}