【发布时间】:2017-03-29 23:38:58
【问题描述】:
我创建如下迁移:
public function up()
{
//
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('parent')->nullable()->unsigned();;
$table->string('category_name');
$table->text('category_lable');
$table->timestamps();
});
Schema::table('categories', function (Blueprint $table) {
$table->foreign('parent')
->references('id')->on('categories')
->onDelete('cascade')
->onUpdate('cascade');
}) ;
}
迁移是通过这种方式播种的:
Category::create([
'id' => 1,
'parent' => null,
'category_name' => "root"
]);
Category::create([
'id' => 2,
'parent' => 1,
'category_name' => "something"
]);
Category::create([
'id' => 3,
'parent' => 2,
'category_name' => "something"
]);
Category::create([
'id' => 4,
'parent' => 2,
'category_name' => "something"
]);
and etc ...
这也是我自己引用的模型:
class Category extends Model { public function getchildren() { return $this->has_many('App\Category' , 'parent'); } public function getparent() { return $this->belongs_to('App\Category' , 'parent'); }}
在修补程序中,当我尝试获取某个节点父节点或子节点时,出现错误。
错误:
BadMethodCallException 并带有消息“调用未定义的方法 Illuminate\Database\Query\Builder::getparent()”
或
BadMethodCallException 并带有消息“调用未定义的方法 Illuminate\Database\Query\Builder::getchildren()”
我哪里错了?
【问题讨论】:
标签: laravel laravel-5 orm model relationship