龙空技术网

laravel9多对多模型关联快速掌握

编程自学 172

前言:

如今我们对“laravel导入excel实现数据表三级关联”大体比较关心,朋友们都需要分析一些“laravel导入excel实现数据表三级关联”的相关资讯。那么小编也在网上汇集了一些对于“laravel导入excel实现数据表三级关联””的相关知识,希望朋友们能喜欢,咱们一起来了解一下吧!

在laravel9框架开发中,多对多关联模型也比较常见,例如一个用户可能会办理多项业务,而这项业务也可能有多个客户一起办理,这个时候客户与业务之间就是多对多的关系,那么框架是如何关联模型的呢?

Laravel9框架一般是通过调用 belongsToMany 方法结果的方法来实现多模型关联的。 belongsToMany 方法由 Illuminate\Database\Eloquent\Model 基类提供,所有应用程序的 Eloquent 模型都使用该基类。

下面让我们来一起实现这种多对多的关系。

首先需要准备三张数据表:clients(客户数据表)、business(业务数据表)、client_and_business(客户与业务关系表)

以及对应的模型:

class Business extends Model{protected $table = "business";public $timestamp = false;}

class ClientAndBusiness extends Model{    protected $table = "client_and_business";    public $timestamp = false;}

//多对多的关系public function business(){    return $this->belongsToMany('App\Models\Business','client_and_business','c_id','b_id');}//多对多的关系public function many_to_many(){    $list = $this->get();     foreach($list as $val){        echo $val->id."客户名称:".$val->client_name."-业务:";        foreach($val->business as $item){            echo "业务名:".$item->name.",";        }        echo "<br/>";    }}

然后在控制器中调用增加调用模型的方法:

class ClientController extends Controller{    public function ManyToMany(){        $client = new Clients();        $list = $client->many_to_many();        dd($list);    }}

接着添加路由:

use Illuminate\Support\Facades\Route;use App\Http\Controllers\ClientController;//多对多模型关系演示Route::get('many-to-many',[ClientController::class,'ManyToMany']);

启动服务,然后打开浏览器验证:

这一节就介绍到这里了。

标签: #laravel导入excel实现数据表三级关联