Попытка получить свойство 'header_image' не-объекта - PullRequest
0 голосов
/ 25 января 2020

Я хочу показать последние данные базы данных на странице моего веб-сайта, но у меня появляется эта ошибка "Попытка получить свойство 'header_image' не-объекта" (у меня есть данные в базе данных), в чем проблема?

контроллер:

public function show()
    {
        $edu = Classes::get()->first();
        return view('UI.classes.educationcourses'  ,  compact('edu'));
    }

лезвие:

 @foreach( $edu as  $class)
    <section id="home">
        <div id="home-slider">
            <div class="slide-item">
                <img src="{{ $class->header_image }}" alt="">
                <div class="slide-wrap">

Ответы [ 2 ]

1 голос
/ 25 января 2020

Попробуйте - в контроллере:

public function show()
{
    $edu = Classes::all();
    return view('UI.classes.educationcourses',compact('edu'));
}

и в блейд-файле:

@foreach( $edu as  $class)
<section id="home">
    <div id="home-slider">
        <div class="slide-item">
            @if($class->header_image)
              <img src="{{ asset('imagepath/'.$class->header_image) }}" alt="">
            @else
              <img src="{{ asset('imagepath/defaultimage.ext') }}" alt="">
            @endif
            <div class="slide-wrap">

Убедитесь, что ваше изображение существует в папке.

Обновление:

Если вам нужна одна строка и последняя, ​​вам не нужно go до foreach l oop в блейд-файле. Тогда вы должны попробовать это:

public function show()
{
    $edu = Classes::latest()->first();
    return view('UI.classes.educationcourses',compact('edu'));
}

И в файле блейда:

<section id="home">
    <div id="home-slider">
        <div class="slide-item">
        @if($edu->header_image)
          <img src="{{ asset('imagepath/'.$edu->header_image) }}" alt="">
        @else
          <img src="{{ asset('imagepath/defaultimage.ext') }}" alt="">
        @endif
        <div class="slide-wrap">
0 голосов
/ 25 января 2020

Вы можете получить последний, используя время ввода в этой таблице.

   $edu = Classes::where('any_condition',true)->order_by('upload_time', 'desc')->first();

А затем в блейде вы можете просто использовать $edu без каких-либо @foreach l oop. Кроме того, предложение where не является обязательным, просто добавьте его там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...