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

如何删除用户在删除帐户的帖子?

蔺山
2023-03-14

我刚做了一个账户删除功能,但我遇到了一个问题。我还需要删除用户的帖子,在删除帐户。我怎样才能做到?我有表用户,其中我有来自用户的所有详细信息,还有表帖子,其中还有帖子的用户idid标题图像

公共函数删除($id)

public function delete($id)
    {
        $profile = User::find($id);


        $profile->delete();
        Session::flash('remove', "The profile was successfully deleted!");
        return redirect('login');
    }

Profile.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Profile extends Model
{

    protected $guarded = [];

    public function profileImage(){

        $imagePath = ($this->image) ?  $this->image : 'profile/vx2k9TEhkcgaRdOWKvs4lsxqOVmuzwumtwySEnvH.png';
        return '' . $imagePath;
    }

    public function user(){

        return $this->belongsTo(User::class);
    }

    public function followers(){
        return $this->belongsToMany(User::class);

    }


}

使用者php

<?php
namespace App;


use App\Mail\NewUserWelcomeMail;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\Mail;
use Actuallymab\LaravelComment\CanComment;


class User extends Authenticatable
{
    use Notifiable;
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'username', 'password',
    ];
    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
    protected static function boot()
    {
        parent::boot();

        static::created(function ($user) {
            $user->profile()->create([
                'title' => $user->username,
            ]);

        });
    }
    public function posts()
    {
        return $this->hasMany(Post::class)->orderBy('created_at', 'DESC');
    }



    public function profile()
    {
        return $this->hasOne(Profile::class);
    }
}

邮递php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;


class Post extends Model 
{
    protected $guarded = [];


    public function user(){

        return $this->belongsTo(User::class);
    }

    public function likes()
    {
        return $this->hasMany('App\Like');
    }

    public function comments()
    {
        return $this->hasMany('App\Comment');
    }

    public function tags()
    {
        return $this->belongsToMany('App\Tag');
    }


}

public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->unsignedBigInteger('user_id');
            $table->string('caption');
            $table->string('image');
            $table->timestamps();


            $table->index('user_id');
        });
    }

共有1个答案

狄天逸
2023-03-14

我认为你可以在用户之前删除控制器中的相关模型,即:

public function delete($id)
{
   $profile = User::find($id);
   $profile->posts()->delete();

   $profile->delete();
   Session::flash('remove', "The profile was successfully deleted!");
   return redirect('login');
}

或者您也可以参加模型活动,即:

protected static function boot() {
    parent::boot();

    static::created(function ($user) {
        $user->profile()->create([
            'title' => $user->username,
        ]);

    });

    static::deleting(function($user) {
        $user->posts()->delete();
    });
}
 类似资料:
  • 你好,我正在Java办理银行申请。 我的问题是我不知道如何删除创建的帐户。 当我创建一个新的帐户,它得到一个新的号码,但我不知道如何删除一个帐户,如果有像3个帐户,我想删除帐号2,当我想创建一个新的帐户,它将得到ID号码2。(有1号和3号)。 当我想创建另一个帐户时,我想将其ID更改为4。 提前道谢。:)

  • 我的问题是关于删除Oracle中的用户。我收到一个错误,请尝试Oracle sqlplus和开发人员。 oracle sql开发人员: OracleSQL开发人员中的连接 错误:从命令的第13行开始的错误:删除用户HELLO CASCADE错误报告-ORA-00604:错误发生在递归级别1SQLORA-00942:表或视图不存在00604. 00000-”错误发生在递归SQL级别%s"*原因:处理

  • 在 MySQL 数据库中,可以使用 DROP USER 语句删除用户,也可以直接在 mysql.user 表中删除用户以及相关权限。 1. 使用 DROP USER 语句删除普通用户 使用 DROP USER 语句删除用户的语法格式如下: DROP USER <用户1> [ , <用户2> ]… 其中,用户用来指定需要删除的用户账号。 使用 DROP USER 语句应注意以下几点: DROP US

  • 主要内容:删除用户的步骤在本章中,我们将讨论如何从GitLab中的项目中删除用户。 删除用户的步骤 步骤(1): 登录到您的GitLab帐户并转到Projects部分下: 步骤(2): 现在,单击Settings 选项卡下的Members选项: 步骤(3): 您将看到“Existing members and groups”部分下的用户列表,并单击右侧的删除选项以从项目中删除用户: 步骤(4): 点击删除按钮后,会弹出一

  • 至此,用户列表页面完成了。符合 REST 架构的用户资源只剩下最后一个了——destroy 动作。本节,我们会先添加删除用户的链接(构思图如图 9.13 所示),然后再编写 destroy 动作,完成删除操作。不过,首先我们要先创建管理员级别的用户,并授权这些用户执行删除操作。 图 9.13:显示有删除链接的用户列表页面构思图 9.4.1 管理员 我们要通过用户模型中一个名为 admin 的属性来

  • 前面我们说了创建用户,修改用户,本节我们说下删除用户! 看你不爽,delete 掉你!就是这么任性! delete 删除用户 try { // 根据 user id 查询用户信息 $user = Sentry::findUserById(1); // 删除用户 $user->delete(); } catch (Cartalyst\Sentry\Users\Use

  • 首先,我将引用另外两个对这个问题有部分答案的问题。 删除VM后从Azure中删除磁盘 如何删除Microsoft Azure存储中的租用blob 使用Azure Explorer,我可以删除blob和容器,但当我尝试删除存储帐户时,我出现了以下错误: 删除存储帐户“bitnamiWestusflwdmy”失败。无法删除存储帐户“bitnamiWestusflwdmy”:“存储帐户bitnamiWe

  • 创建帖子时,我的用户会提供一个外部链接。如果删除了外部链接,本地帖子也应该删除。为了实现这一点,我尝试运行以下代码... ...但是我得到了这些错误... 警告:get_headers(): php_network_getaddresses: getaddrinfo failed: name or service in /home/cornwal2/public_html/listings/wp-