Свойство [image_thumb_url] не существует в этом экземпляре коллекции - PullRequest
0 голосов
/ 28 апреля 2020

привет, я просто получаю сообщение об ошибке в своем блейде, которое он вызывает

ErrorException (E_ERROR) Свойство [image_thumb_url] не существует в этом экземпляре коллекции. (Представление: C: \ xampp \ htdocs \ Madinatul-Quran \ resources \ views \ backend \ iklan \ index.blade. php) Предыдущие исключения Свойство [image_thumb_url] не существует в этом экземпляре коллекции. (0)

это начинается, когда я добавляю модал в свой index.blade, контроллер вызвал эту ошибку? вот мой index.blade. php

<div id="modal_form_vertical" class="modal fade" tabindex="-1">
    <div class="modal-dialog">
        <div class="modal-content">
            <form action="{{ route('iklan.store') }}" method="POST" enctype="multipart/form-data">
                @csrf
                <div class="modal-body">
                    <div class="form-group">
                        <div class="form-group col-sm-12 {{ $errors->has('image') ? 'has-error' : '' }}">
                            <div><label>Cover Iklan</label></div>
                            <div class="fileinput fileinput-new" data-provides="fileinput">
                                <div class="fileinput-new thumbnail" style="width: 200px; height: 100px;">
                                    <img src="{{ ($ads->image_thumb_url) ? $ads->image_thumb_url : 'http://placehold.it/200x150&text=Landscape' }}" alt="...">
                                </div>
                                <div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 100px;"></div>
                                <div>
                                    <span class="btn btn-default btn-file"><span class="fileinput-new">Pilih Gambar</span><span class="fileinput-exists">Ganti</span><input type="file" name='image'></span>
                                    <a href="#" class="btn btn-default fileinput-exists" data-dismiss="fileinput">Hapus</a>
                                </div>
                            </div>
                            @if($errors->has('image'))
                            <span class="help-block">{{ $errors->first('image') }}</span>
                            @endif
                        </div>
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-link" data-dismiss="modal">Close</button>
                    <button type="submit" class="btn btn-primary">Submit</button>
                </div>
            </form>
        </div>
    </div>
</div>

, а это мой контроллер

public function index()
{
    $ads = Ads::latest()->get();
    return view("backend.iklan.index", compact('ads'));
}

public function store(Request $request)
{ 
    $this->validate($request, [
        'image'        => 'mimes:jpeg,png,jpg,svg,bmp'
    ]);

    $ads = new Ads;
    $ads->author_id = Auth::user()->id;

    if ($request->hasFile('image'))
    {
        $file = $request->file('image');
        $image = $file->getClientOriginalName();
        $destination = public_path() . '/imgiklan/';

        $successUploaded = $request->file('image')->move($destination, $file->getClientOriginalName());

        if($successUploaded)
        {
            $extension = $file->getClientOriginalExtension();
            $thumbnail = str_replace(".{$extension}", "_thumb.{$extension}", $image);

            Image::make($destination . '/' . $image)
                ->resize(250, 170)
                ->save($destination . '/' . $thumbnail);
         }

         $ads->image = $image;
     } else {
         $ads->image = 'logo.jpg';
     }

     $ads->save();

     return redirect()->route('iklan.index')->with('message', 'Iklan berhasil dibuat');
}

1 Ответ

0 голосов
/ 28 апреля 2020

Объявления - это множественное число, вы получаете несколько отсортированных объявлений по убыванию created_at (потому что вы используете latest()). По вашему мнению, вы получаете доступ к атрибуту одного объявления. Поэтому вы должны использовать это в вашем маршрутном указателе контроллера:

$ads = Ads::latest()->first();

Тогда $ads будет заполнен последним результатом в вашей базе данных вместо набора объявлений.

...