【发布时间】:2015-02-28 14:52:03
【问题描述】:
在我的应用程序中,我有事件和用户模型。由于事件模型,我必须将其放入命名空间。所以我创建了如下命名空间。
活动
<?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');
}
【问题讨论】:
标签: php laravel-4 namespaces relationship laravel-facade