J'ai le tableau ci-dessous:Foreach ul li comme condition de l'infini
public function up()
{
Schema::create('locations', function (Blueprint $table) {
$table->increments('id');
$table->string('location_name',50);
$table->integer('location_id')->unsigned();
$table->foreign('location_id')->references('id')->on('locations');
$table->softDeletes();
$table->timestamps();
});
}
Là où je veux ressembler à un arbre, mais toujours en mesure de l'utiliser dans la liste déroulante ma ul li. l'intérieur de ma lame, je l'ai fait:
<ol>
@foreach($locations->where('location_id','=',null) as $location)
<li draggable='true'>
{{$location->location_name}}
<ol>
@foreach($location->get_sub as $location_sub)
<li draggable='true'>{{$location_sub->location_name}}</li>
@endforeach
</ol>
</li>
@endforeach
</ol>
$ emplacement-> get_sub est fonction à l'intérieur du modèle Relation
public function get_sub()
{
return $this->hasMany('App\Location','location_id','id');
}
En ce faisant, je peux atteindre l'emplacement parent/enfant; cependant, j'ai parfois besoin d'un arrière-petit-petit-enfant, etc. Mon idée de faire ceci est de faire une boucle while pour rechercher chaque emplacement enfant et et de les mettre dans la liste ul li et chaque get_sub pour le montrer sous avec ul li à l'intérieur du ul parent li ressemble à ceci:
Parfois, si l'emplacement obtient 7 pères et si je connais le nombre de pères, je peux faire en boucle pour autant que le nombre de pères, mais Je ne connais pas le nombre à la compilation.
$ emplacements = Emplacement :: withTrashed() -> get(); \t \t vue de retour ('locations.create', compact ('locations')); ceci est mon code de contrôleur que j'ai déjà fait ce que vous avez dit –
mon problème c'est que je veux que cela commence par le dernier enfant pas du parent –