-1
我创建一个迁移如下:组关系中laravel
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 ...
也这是我的模型,它是自引用:
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');
}) ;
}
和迁移是通过这种方式接种:
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与消息 '调用未定义方法照亮\数据库\查询\生成器::的getParent()'
或
BadMethodCallException与消息“调用未定义的方法Illuminate \ Database \ Query \ Builder :: getchildren()'
我的错在哪里?
tnanks @ jan-willem请留意。这里是我的:$ cat = Category :: findOrFail(26)然后:$ cat-> children() – user3634011
查看我更新的答案。 –
它返回null:((($ model-> children) – user3634011