EasyAdmin 在向实体添加新条目时自动设置 user_id

EasyAdmin automatically set up a user_id when adding a new entry to an entity

我在学校的在线学习网站项目中使用 easyadmin。 教师可以添加编队、附加到编队的小节和属于小节的课程。我为每个设置了三个 crud,并进行查询,以便登录用户只能看到他们创建的内容。

问题是在添加新条目时,easyadmin 没有在数据库中设置登录 user_id,我收到以下错误: 执行查询时发生异常:SQLSTATE[23000]:违反完整性约束:1048 列 'user_id' 不能为空

我知道它的来源,没有 user_id 就无法向数据库添加条目,因为它不可为空,但我似乎无法找到可以设置 easyadmin 的位置,所以它添加新条目时始终传递 user_id。您可以在某处编辑添加操作吗?

谢谢!

如下面的 docs 示例代码所示,您需要在您的 [=12] 中手动设置实体上的用户(目前 logged-in 用户由 $this->getUser() 返回) =]方法。

//    src: https://symfony.com/bundles/EasyAdminBundle/current/crud.html#creating-persisting-and-deleting-entities
// copied: 2022-04-13

namespace App\Controller\Admin;

use App\Entity\Product;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;

class ProductCrudController extends AbstractCrudController
{
    public static function getEntityFqcn(): string
    {
        return Product::class;
    }

    public function createEntity(string $entityFqcn)
    {
        $product = new Product();
        $product->createdBy($this->getUser());

        return $product;
    }

    // ...
}