Mysql
 sql >> Base de données >  >> RDS >> Mysql

Accès aux données à l'aide de relations Laravel

Voici votre réponse. Vous allez dans la bonne direction en créant un tableau croisé dynamique pour le client et le projet afin de pouvoir associer autant de projets à n'importe quel client. Voici la relation avec le modèle.

Modèle client

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Client extends Model
{
    public function projects() {
        return $this->belongsToMany(Project::class,'client_project');
    } 
}   

Modèle de projet

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Projects extends Model
{



    public function client() {
        return $this->belongsToMany(Client::class,'client_project');
    } 


}   

?>

Pour enregistrer l'ID du projet, utilisez la méthode suivante dans la méthode du contrôleur

    $client = new Client();
    $client->name = $request->input("nameClient");
    $client->slug = $request->input("slugClient");
    $client->priority = $request->input("priorityClient");
    $client->save();
    $project = new Project();
//include fields as per your table 

    $project->save();

    $client->projects()->attach($project->id);

.