<UL> <LI>Foreach Loop Отображение всего контента на одном <UL> - PullRequest
0 голосов
/ 25 апреля 2019

Я знаю, что это относительно просто, но это сводит меня с ума!

небольшой фон, мое приложение использует XML-фид для анализа, здесь есть вложенные поля, такие как функции

, в котором он находитсямоя БД, как объект / массив, с ключом 'feature'.

теперь моя для каждого цикла отображает все эти данные в одном UL.

Код ниже.

Любая помощь высоко ценится

//model
    public static function getFeatures($id){
            $featuresArray = [];

            $featuresquery = DB::table('properties')
            ->selectRaw("features")
                ->where('id', $id)
                ->get('');

            $k = $featuresquery;

            foreach ($k as $feat):
            if (is_array($feat)) {
                $featuresArray[] = (array_key_exists('features', $feat)) ? $feat['features'] : '';
                }
            return $feat;
            endforeach;

        return $featuresArray;

        }


//Controller


public function details($id) {
    $property = Property::findorFail($id);
    $agent = Agent::where("id",$property->agent_id)
            ->with([
                'ads'
            ])->first();
    $template = Agent::getTemplateName($agent);
    $banners = Banner::getBanners($agent->id);
    $areaAndLocations = Property::getAreaAndLocations($agent->id);
    $property_type = Property::getPropertyTypes($agent->id);
    $query_params = Property::getQueryParams();
    $features = Property::getFeatures($property->id);
    return view('frontend.'.$template.'.property.details', ['template' => $template, 'banners' => $banners, 'areaAndLocations' => $areaAndLocations, 'property_type' => $property_type, 'query_params' => $query_params, 'features' => $features])
            ->withDetails($property)
            ->withAgent($agent);
}
//View
        <div class="features">
            @foreach($features as $feature)
            <ul><li>
                {!! json_encode(json_decode($feature)) !!}
                </li></ul>
            @endforeach
        </div>

Ответы [ 3 ]

1 голос
/ 25 апреля 2019

Переместите теги <ul> и </ul> вне цикла for. Ваш код генерирует новую пару <ul>...</ul> для каждого элемента в списке.

1 голос
/ 26 апреля 2019

Измените цикл foreach следующим образом

 <div class="features">
  <ul>
    @foreach($features as $feature)
     <li>
            {!! json_encode(json_decode($feature)) !!}
     </li>
   @endforeach
 </ul>
</div>
1 голос
/ 25 апреля 2019

потому что вы даете ul>li в foreach, который генерирует ul с каждой итерацией, следуйте приведенному ниже коду

    <div class="features">
         <ul>
             @foreach($features as $feature)
               <li>
                  {!! json_encode(json_decode($feature)) !!}
               </li>
             @endforeach
         </ul>
    </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...