当前位置: 首页 > 知识库问答 >
问题:

如何在Laravel 5.2中实现带自联接表的树

陆烨烁
2023-03-14

我的项目需要一棵树。我有一个名为category的表,它的id有一个外键。创建此表的代码是:

 Schema::create('categories', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('category_id')->nullable();
        $table->string('title');
        $table->timestamps();

        $this->foreign('category_id')
            ->references('id')
            ->on('categories')
            ->onDelete('cascade');
    });

这里有很多问题:1。迁移时出错:

PHP致命错误:调用未定义的方法创建类别Table::foreign()

SELECT *
FROM categories sub
LEFT JOIN categories parent ON parent.id = sub.category_id
public function parent()
{
    return $this->belongsTo(Category::class);
}

共有1个答案

滕学义
2023-03-14

第一个问题:

$this->foreign('category_id') to
$table->foreign('category_id')

第二个问题:

\DB::table('categories as sub')->leftJoin('categories as parent', 'parent.id','=','sub.category_id')->get();

第三个问题:

return $this->belongsTo(Category::class, 'id', 'parent_id');
 类似资料:
  • 如何在中实现或。一个简单的例子很有帮助。

  • 问题内容: 我正在尝试用Java实现一个简单的HashTable,该哈希表使用链接表来解决冲突,这在C语言中很容易实现,但是我不知道如何在Java中实现它,因为您不能使用指针。 。 首先,我知道这些结构已经在Java中实现,我不打算使用它,只是在这里进行培训… 所以我创建了一个元素,它是一个字符串和一个指向下一个元素的指针: 当然,我的HashTable有一个Element数组来存储数据: 这是我

  • 我有两张桌子, 我想为changelog实现一个搜索方法,该方法返回字段 如您所见,结果来自两个表的联接。 我发现https://gorm.io/docs/preload.html 但老实说,我不明白我该如何实现我所需要的。 我认为下面的内容可能会有所帮助 问题是,如何从GORM中提到的表格中获得我提到的内容?

  • 在一个个人项目中,我遇到了一个TypeScript条件类型的问题。我对TypeScript文档中的条件类型有基本的了解。我希望下面的设置工作,但它给出了一个类型错误。 基本上,我试图为从磁盘加载的树节点定义一个接口。这意味着,由于缺少文件等原因,某些节点可能无法正确加载。因此,任何节点实现都可能包含或。 我希望方法的实现可以返回,因为接口是通过类型扩展

  • 我们需要在一个非常大的窗口中执行kstream-kstream联接,在这个窗口中,左侧的一个刻度只会触发与右侧最新记录的联接,反之亦然。 这不是默认窗口的工作方式,因为中的window.fetch返回的是一个可以包含多条记录的迭代器。 特别是,我们注意到有一个属性设置为true,我们希望它设置为false。 我们如何为KStream KStream join定制存储实现?

  • 问题内容: 如何实现与C#代码等效的Python? 这是一个好主意吗??请在您的答案中举例说明。 问题答案: 正如其他人在这里提到的: 在Python中不需要接口。这是因为Python具有适当的多重继承,还具有鸭式输入法,这意味着 必须 在Java中具有接口的地方,而不必在Python中具有接口。 也就是说,接口还有多种用途。其中一些被Python 2.6中引入的Pythons抽象基类覆盖。如果您