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

如何使用雄辩的查询删除数据?

呼延凌
2023-03-14

我不能用一个简单的有说服力的查询来删除一行。即使在我使用雄辩时也无法从数据库中获取数据。我正在变空。但是,在DB查询方法中,至少我得到了数据但不能删除。以下是我的代码:

DB::transaction(function () use ($lead, $comment, $request) {
    $lead->save();
    $lead->comments()->save($comment);

    if ($request->deleteAppointment) {
        $calendarEvent = DB::table('calendar_events')->where('id', $request->appointmentId)->first(); // I am getting data here.
        $calendarEvent = CalendarEvent::find($request->appointmentId); // But, here I am getting null, don't know why!
        
        if ($calendarEvent != null) {
            $calendarEvent->delete();
        }
    } 

我的目标是使用雄辩的数据,然后从数据库中删除。

日历事件。php模型

class CalendarEvent extends Model
{
    use SoftDeletes;

    /**
     * @var array
     */
    protected $casts = [
        'event_begin' => 'datetime',
        'event_end'   => 'datetime',
        'options'     => 'array',
    ];

    /**
     * @var array
     */
    protected $guarded = [
        'id',
    ];

    /**
     * @return mixed
     */
    public function users()
    {
        return $this->morphedByMany(User::class, 'eventable');
    }

    /**
     * @return mixed
     */
    public function attendees()
    {
        return $this->morphedByMany(User::class, 'eventable')->withPivotValue('role', 'atendee');
    }

    /**
     * @return mixed
     */
    public function companies()
    {
        return $this->morphedByMany(Company::class, 'eventable')->withPivotValue('role', 'company');
    }

    /**
     * @return mixed
     */
    public function invitees()
    {
        return $this->morphedByMany(User::class, 'eventable')->withPivotValue('role', 'invitee');
    }

    /**
     * @return mixed
     */
    public function leads()
    {
        return $this->morphedByMany(Lead::class, 'eventable')->withPivotValue('role', 'lead');
    }
}

共有1个答案

山凌
2023-03-14

为什么不只是:

CalendarEvent::where('id', $request->appointmentId)->delete();

此外,请检查删除的_at列。如果该值不为null,则select将返回null,除非添加-

当使用有说服力的对象时,使用SoftDelete特性,当直接使用DB::时,则不使用SoftDelete特性。

 类似资料:
  • 我正在使用Laravel5.1进行CMS开发。我有一个简单的帖子结构,用户和用户都可以喜欢帖子。 帖子和用户有多对多关系,并使用数据透视表来表示关系。 职位模型有 用户模型有 我想列出用户的最新活动。例如。 Username1喜欢Post2 Username5喜欢Post9 用户名30喜欢Post25 我知道我必须像这样编写sql查询- 上面的查询工作正常,但有没有办法使用laravel雄辩?

  • 假设我们正在使用Laravel的查询生成器: 我正在寻找一个等效的SQL: 当我必须键入大量select和WHERE(或者通常在select的列alias中包含别名,并且它在结果数组中使用)时,这将特别有用。如果没有任何表别名,我需要输入更多的内容,所有内容的可读性都会降低。在laravel文档中找不到答案,有什么想法吗?

  • 我有以下三种型号: 类别字段: 分类选项: 当我运行这个查询时,我得到了这个错误: SQLSTATE[42S22]:列未找到: 1054未知列'field ID'在'where子句'(SQL:选择*从其中=3)任何帮助请知道是什么问题!!?

  • 在我的应用程序中,我更新了从一对多到多对多的关系,我试图找出一种持久化关联功能的方法。 假设我有两个相关的表,例如狗和主人。如果我有一系列的主人,并且我正试图为这些主人获取一份狗的id列表,我应该如何雄辩地做到这一点? 这里也提出了类似的问题:https://laracasts.com/discuss/channels/laravel/getting-many-to-many-related-da

  • Laravel Eloquent的save()方法实质上是执行查询生成器的工作吗? 查询生成器: 雄辩的: 如果这是真的,那么Eloquent的也是如此吗?我正在看Laravel的官方视频教程,我看到作者在控制器中使用了雄辩的和。这就是查询生成器和雄辩的区别吗?我们可以使用雄辩的内部控制器?

  • 我使用laravel雄辩到CRUD数据。我的问题是,我不知道如何使用laravel雄辩的ORM进行UNION查询。你能帮我解决我的问题吗 这是我想要在laravel雄辩或查询生成器中实现的示例查询