在模型中设置表名?

时间:2014-03-27 10:57:11

标签: laravel laravel-4

我试图将表名传递给我的模型,因为模型在两个表上运行,但具有相同的方法。

我是这样做的:

$this->model = new Emotions(array('section' => 'red'));

在模型中,我将表格设置为:

public function __construct($attributes = array(), $exists = false){

    parent::__construct($attributes, $exists);
    $this->table = $attributes['section'];
}

但我收到错误:

Undefined index: section

我出错的任何想法?

2 个答案:

答案 0 :(得分:0)

是的我知道了,这堂课可能会跑两次。

请试一试。

public function __construct($attributes = array(), $exists = false){

    parent::__construct($attributes, $exists);

    if(isset($attributes['section'])) {
        $this->table = $attributes['section'];
    }
}

我的个人建议

<?php

class Emotions extends Eloquent
{
    public function setTableName($name)
    {
        $this->table = $name;
        return $this;
    }
}

你可以像这样使用

$emotion = new Emotions(array('foo' => 'bar'))
    ->setTableName('blabla')
    ->save();

答案 1 :(得分:-1)

在您的课程中添加以下行。

protected $fillable = array('section');

http://laravel.com/docs/eloquent#mass-assignment