我有这个模型,它使用静态启动来删除数据库中的相关模型/表。首先是产品型号。
protected static function boot() {
parent::boot();
static::deleting(function($product) {
$product->hearts()->delete();
$product->comments()->delete();
});
}
Run Code Online (Sandbox Code Playgroud)
它删除了心形和评论,它的作用就像一个魅力。但问题是我有这个回复模型与我的评论模型有关系,并且回复模型是从评论模型中引用的
public function replies()
{
return $this->hasMany("App\Reply");
}
Run Code Online (Sandbox Code Playgroud)
然后在我的评论模型中,我使用了另一个静态启动来“链接”从产品中删除的启动
protected static function boot() {
parent::boot();
static::deleting(function($comment) {
$comment->replies()->delete();
});
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用。你们能告诉我为什么这不起作用吗?从逻辑上讲,它应该可以工作,因为评论正在被删除。谢谢你。
嗨,我的队列在laravel宅基地上似乎有问题.工作和侦听进程一次一个队列有没有办法让它运行一次并处理作业表中的所有队列?
这是我的代码:
DB::beginTransaction();
try {
$model_data = $this->transformCsvDataToModelData($this->csv_data, $this->data['file_columns'], $this->data['table_columns'], $this->data);
$dynamic_list_model = new DynamicDataList();
$dynamic_list_model->setTable($this->list->table_name);
$dynamic_list_model->insert($model_data);
$this->notify($this->data['user']->id, [
'title' => 'Data list upload successful',
'message' => 'Batch ' . ($this->index + 1) . ' data list upload done.'
], 'success');
DB::commit();
} catch (Exception $exception) {
DB::rollBack();
}
Run Code Online (Sandbox Code Playgroud) 我有一个雄辩的多对多关系,我想使用 Attach() 轻松创建 role_permissions 数据,但问题是我使用 UUID 作为我的 ID,它会抛出错误 Field 'id' does not have a default value 。有什么方法可以劫持attach()方法吗?那么我可以设置我的 UUID 吗?
我的迁移
Schema::create('role_permissions', function (Blueprint $table) {
$table->increments('count')->unique();
$table->string('id')->unique();
$table->string('role_id');
$table->string('permission_id');
$table->timestamps();
});
Run Code Online (Sandbox Code Playgroud)
我的模特
class Role extends Model
{
//
public $incrementing = false;
public function users()
{
return $this->belongsToMany('App\User', 'user_roles', 'role_id', 'user_id');
}
public function permissions()
{
return $this->belongsToMany('App\Permission', 'role_permissions', 'role_id', 'permission_id');
}
}
Run Code Online (Sandbox Code Playgroud)
我的附加代码
$role->permissions()->attach($permission_ids);
Run Code Online (Sandbox Code Playgroud)
我知道这里的问题是我的 id 不是一个递增的数字,而是一个唯一的字符串。我的问题是如何将唯一的字符串“注入”到 Attach() 方法中?感谢你们。