Laravel 5 使用laravel eloquent从相关表中删除所有记录
我有三张桌子Laravel 5 使用laravel eloquent从相关表中删除所有记录,laravel-5,laravel-eloquent,Laravel 5,Laravel Eloquent,我有三张桌子 Posts Likes Post_images. // Model Relations. Posts hasMany likes. Likes belongs to Posts. post hasMany PostImages post_imags belongs to Posts. 现在,当我删除一条post记录时,我想从likes表以及post_images表中删除它的相关记录,此外,这些图像也应该从存储中删除 我怎样才能做到这一点?非常感谢您的指导。如果我理解正确,您的问
Posts
Likes
Post_images.
// Model Relations.
Posts hasMany likes.
Likes belongs to Posts.
post hasMany PostImages
post_imags belongs to Posts.
现在,当我删除一条post记录时,我想从likes表以及post_images表中删除它的相关记录,此外,这些图像也应该从存储中删除
我怎样才能做到这一点?非常感谢您的指导。如果我理解正确,您的问题应该是这样的。但是你不能删除有雄辩关系的图像。所以你需要做一些类似的事情
$courses = \App\Course::all();
foreach($courses $ $course){
Storage::delete($course->image_column_name);
}
\App\Courses::with('sessions')->with('lessons')->delete();
我可以给你更好的答案,如果你能分享你的模型功能,数据库模式和存储信息,比如你在哪里存储课程图像 如果我理解正确,您的查询应该是这样的。但是你不能删除有雄辩关系的图像。所以你需要做一些类似的事情
$courses = \App\Course::all();
foreach($courses $ $course){
Storage::delete($course->image_column_name);
}
\App\Courses::with('sessions')->with('lessons')->delete();
DB::table('users')->delete();
我可以给你更好的答案,如果你能分享你的模型功能,数据库模式和存储信息,比如你在哪里存储课程图像
DB::table('users')->delete();
将从“用户”表中删除所有用户
如果在中使用Models::Table('abilities')设置表名,则会从“user”表中删除所有用户 你可以用
DB::table(Models::table('abilities'))->delete();
如本文所述,您可以
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
Models::table('abilities');
}
如果在中使用Models::table('abilities')设置表名 你可以用
DB::table(Models::table('abilities'))->delete();
如本文所述,您可以
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
Models::table('abilities');
}
您是否使用eloquent定义了表之间的关系?显示您的表关系我已经更新了问题@rodraneh您是否使用eloquent定义了表之间的关系?显示你的表格关系我已经更新了问题@RodranePlease查看一下这个URL,它有完整的关系\App\Courses::with('sessions')->with('Courses')->delete();试试这个谢谢你,会有用的,但是我怎样才能删除这些图片呢?谢谢你,这就是我要找的嘿@KhiradBanu,如果他回答了这个问题,你应该把它标记为已回答。请查看这个URL,它有完整的关系\App\Courses::with('sessions')->with('Courses')->delete();试试这个谢谢你,会有用的,但是我怎样才能删除这些图片呢?谢谢你,这就是我要找的嘿@KhiradBanu,如果他回答了问题,你应该把它标记为已回答。