Получение ошибки при нажатии во втором моем посте на одной странице - PullRequest
0 голосов
/ 15 марта 2019

Когда я пытаюсь открыть первое сообщение на одной странице, оно открывается, и при попытке открыть мое второе сообщение на одной странице, оно показывает «Попытка получить свойство 'title' не-объекта"

Вот код

FrontendController

public function singlePost($slug)
{

    $post= Post::where('slug', $slug)->first();


    return view('single')->with('post', $post)


        ->with('title', $post->title)
        ->with('settings', Setting::first())
        ->with('categories', Category::take(4)->get());

}

single.blade.php

в том смысле, что я использую тот же контроллер внешнего интерфейса для той же страницы @extends ('layouts.frontend')

@ section ('content')

<div id="product-post">
    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <div class="heading-section">

                    <img src="{{$post->featured}}" alt="" />
                </div>
            </div>
        </div>
        <div id="single-blog" class="page-section first-section">
            <div class="container">
                <div class="row">
                    <div class="product-item col-md-12">
                        <div class="row">
                            <div class="col-md-8">

                                <div class="product-content">
                                    <div class="product-title">
                                        <h3>{{$post->title}}</h3>
                                        <span class="subtitle">4 comments</span>
                                    </div>
                                    <p>
                                        {!! $post->content!!}

                                    </p>
                                </div>



                                <div class="leave-form">
                                    <form action="#" method="post" class="leave-comment">
                                        <div class="row">
                                            <div class="name col-md-4">
                                                <input type="text" name="name" id="name" placeholder="Name" />
                                            </div>
                                            <div class="email col-md-4">
                                                <input type="text" name="email" id="email" placeholder="Email" />
                                            </div>
                                            <div class="subject col-md-4">
                                                <input type="text" name="subject" id="subject" placeholder="Subject" />
                                            </div>
                                        </div>
                                        <div class="row">
                                            <div class="text col-md-12">
                                                <textarea name="text" placeholder="Comment"></textarea>
                                            </div>
                                        </div>
                                        <div class="send">
                                            <button type="submit">Send</button>
                                        </div>
                                    </form>
                                </div>
                            </div>

                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>




@endsection

1 Ответ

0 голосов
/ 15 марта 2019

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

Пожалуйста, используйте код ниже:

public function singlePost($slug)
{

   $post= Post::where('slug', $slug)->first();

   if($post) {
     return view('single')->with('post', $post)
       ->with('title', $post->title)
       ->with('settings', Setting::first())
       ->with('categories', Category::take(4)->get());
   } else {
      // You can redirect to 404 page
   }

}
...