没有数据库的Laravel模型

时间:2014-05-20 23:34:59

标签: php laravel

我有一个使用API​​作为其数据源的应用程序。

我正在考虑尝试Laravel,但我无法找到任何参考,讨论如何处理不使用数据库的模型。

那么,有什么建议吗?

2 个答案:

答案 0 :(得分:8)

尝试Jens Segers' laravel-model

它提供了一个类似于eloquent的 base class,可用于在Laravel 4中构建自定义模型。

Jenssegers\Model这样的

Illuminate\Database\Eloquent\Model实现了ArrayAccess,ArrayableInterface,JsonableInterface。

特点:

  • 访问者和变异者
  • 模型到数组和JSON转换
  • Array / JSON转换中的隐藏属性
  • 将访问者和变更器附加到Array / JSON转换

摘自Github回购:

class User extends Model {

    protected $hidden = array('password');

    public function save() 
    {
        return API::post('/items', $this->attributes);
    }

    public function setBirthdayAttribute($value)
    {
        $this->attributes['birthday'] = strtotime($value);
    }

    public function getBirthdayAttribute($value)
    {
        return date('Y-m-d', $value);
    }

    public function getAgeAttribute($value)
    {
        $date = DateTime::createFromFormat('U', $this->attributes['birthday']);
        return $date->diff(new DateTime('now'))->y;
    }
}

$item = new User(array('name' => 'john'));
$item->password = 'bar';

echo $item; // {"name":"john"}

答案 1 :(得分:6)

创建一个类(模型)并实现所需的功能。只需将“extends Eloquent”留出类签名即可。 Laravel可以在Models文件夹中自动加载类,因此您也不必担心这一点!在您的应用程序中正常使用它!