首先我们先创建一个类名为 Model 的模型并继承 Illuminate\Database\Eloquent\Model
suffix = $suffix;
if ($suffix !== null) {
$this->table = $this->getTable() . '_' . $suffix;
}
}
// 提供一个静态方法设置表后缀
public static function suffix($suffix)
{
$instance = new static;
$instance->setSuffix($suffix);
return $instance->newQuery();
}
// 创建新的"chapters_{$suffix}"的模型实例并返回
public function newInstance($attributes = [], $exists = false)
{
$model = parent::newInstance($attributes, $exists);
$model->setSuffix($this->suffix);
return $model;
}
}2、其他模型全都继承以上的 Model 而不是继承 Illuminate\Database\Eloquent\Model,获取某本书的章节 controller
id);
// 章节列表(使用模型关联)
$list = $book->chapters()->oldest('id')->get();
}
}3、chapter 模型(普通查询)
where('book_id', $bookId)->get();
}
}3、好了,我们章节的分表模型已经完成了。那么如何使用模型关联呢?我们来看 Book 模型如何关联 Chapter
setSuffix($this->id % 10); $foreignKey = $instance->getTable . '.' . $this->getForeignKey(); $localKey = $this->getKeyName(); return new HasMany($instance->newQuery(), $this, $foreignKey, $localKey); } }