Laravel model常用方法

Classes::create($request->all());

Classes::findOrFail($id)->delete();

关联删除

classes.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Classes extends Model
{
    //
    protected $fillable = [
        'name','department','open',
    ];
    
    public function courses(){
        return $this->hasMany('App\Courses');
    }
}

Courses.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Courses extends Model
{
    //
   public function classes(){
       return $this->belongsTo('App\Classes');
   }
}

之后执行

Classes::findOrFail($id)->courses()->delete();//先删除关联之下的课程字段
    Classes::findOrFail($id)->delete();//然后删除班级

$classes=Classes::FindOrFail($id);
$classes->name=$request->name;
$classes->department=$request->department;
$classes->save();

$classes=Classes::FindOrFail($id);
//个人推荐使用FindOrFail,因为在查询是做关联查询,如果使用findOrFail会报404,而使用find会报空指针异常
//或
$classes=Classes::find($id);
//有时你希望在未找到模型时抛出异常。这在控制器和路由中非常有用。 findOrFail 和 firstOrFail 方法会检索查询的第一个结果,如果未找到,将抛出 Illuminate\Database\Eloquent\ModelNotFoundException 异常:。
如果没有捕获异常,则会自动返回 404 响应给用户。也就是说,使用这些方法时,没有必要再写个检查来返回 404 响应:

//查询第一条数据
$open=Classes::where('open',1)->first();

关联查询

$classes=Classes::find($id);//先获取对象的实例
$courses=$classes->courses()->get();//查询对应的实例

https://www.cnblogs.com/jiayoubobo/p/9565332.html

相关阅读

laravel框架中的Model操作数据库 , 相比DB类有什么明显的优越性吗?

https://www.zhihu.com/question/49649216

Last modification:April 25, 2022
如果觉得我的文章对你有用,请随意赞赏