Laravel France

Relation OneToMany (Return les enfant qui ont un 'id' spécifique depuis un grand-parent).

Avatar de Sylvain
Sylvain

Bonjour, J'ai besoin d'aide pour un projet Laravel... Je souhaite retourné tous les enfants ou ("filtered_sub_parameters.item_id == "2") depuis un parameter (mon fichier Resource Item)".

Plus simplement a partir de cette photo : https://i.stack.imgur.com/GWquf.png

Je souhaite recuperer :

Depuis un Parameter

-->SubParameters

-->SI FilteredsubParameter.item_id == 2

Screen de mes Tables :

J'ai :

  • Parameter -> OneToMany -> SubParameters
  • SubParameters -> OneToMany -> filtered_sub_parameters
class Parameter extends Model
{
    public function subParameters(){
    return $this->hasMany('App\SubParameter');
}
class SubParameter extends Model
{
    public function parameter(){
        return $this->belongsTo('App\Parameter');
    }

    public function filteredSubparameter()
    {
        return $this->hasMany('App\FilteredSubParameters');
    } 
}
class FilteredSubParameters extends Model
{
    public function subParameter()
    {
        return $this->belongsTo('App\subParameter');
    }
}

Mon fichier : resource :

 foreach ($parameters as &$parameter) {  
            $arr += [ $parameter->nom => $parameter->subParameters:***//Here where filteredSubParameter.item_id == 2'//***  ];
  
        }
        dd($arr);
    }

MERCI Beaucoup à la personne qui pourra me répondre. Cordialement, Sylvain

Avatar de bestmomo
bestmomo

Salut,

Personnellement je n'ai pas compris ce que tu veux faire.

Avatar de Sylvain
Sylvain

Bonjour, Merci de ta réponse. Je reexplique avec un plan plus visuel

En gros, sur l'image : https://i.stack.imgur.com/GWquf.png

Depuis un parameter

Je return subParameters

Si filtered_subParameter.items_id == 2

$parameter->nom => $parameter->subParameters: ici le code ];

Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

As-tu jeté un oeil à la doc ? ==> https://laravel.com/docs/8.x/eloquent-relationships#querying-relations

Nottement la partie

$user = App\Models\User::find(1);
$user->posts()->where('active', 1)->get();

Que tu pourais adapter en

$parameter = parameter::find(1);
$parameter->subParameters()->where('items_id ', 1)->get();

C'est une piste

Vous ne pouvez pas répondre à ce sujet.