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;
}
// ...
}
我在学校的在线学习网站项目中使用 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;
}
// ...
}