Попытка получить свойство ошибки необъекта на одной странице поста - PullRequest
0 голосов
/ 02 июня 2018

У меня есть страница статей, которая отображает цикл каждой статьи на моем сайте.Тогда у меня есть одна страница поста, которая отображает саму статью.Я пытаюсь изменить страницу сообщения, чтобы последние сообщения отображались в виде цикла на боковой панели.Я пытался скопировать код цикла со страницы статей на мою страницу поста, но получил ошибку.

Код страницы статей (без ошибок):

                <div class="row col-md-12">

                    @if(isset($_REQUEST['searchItem']) && $_REQUEST['searchItem']<>'')

                    @if(isset($msg))

                    <div class="alert alert-danger">

                         <ul>

                            <li><h3>{{ $msg }}</h3></li>

                         </ul>

                    </div>

                    @else

                    @foreach($result as $result)

                    <div class="col-md-4">

                        <div class="content">

                        <a href="{{$result->url}}" class="latest-heading">{{substr(($result->title),0,88)}}..</a>

                            <img style="padding: 5px; width:100%; height:218px;" src="{{asset('thumbnails/'.$result->thumbnail)}}" class="img-responsive">

                        </div>

                    </div>

                    @endforeach

                    @endif

                    @else

                    @foreach($post as $post)

                    <div class="col-md-4">

                        <div class="content">

                        <a href="{{$post->url}}" class="latest-heading">{{substr(($post->title),0,88)}}..</a>

                            <img style="padding: 5px; width:100%; height:218px;" src="{{asset('thumbnails/'.$post->thumbnail)}}" class="img-responsive">

                        </div>

                    </div>

                   @endforeach

                   @endif

            </div>

Код для одногоСтраница поста:

  <div class="container layer1">
    @if(isset($_REQUEST['searchItem']) && $_REQUEST['searchItem']<>'')
                    @if(isset($msg))

                    <div class="alert alert-danger">

                         <ul>

                            <li><h3>{{ $msg }}</h3></li>

                         </ul>

                    </div>

                    @else

    <div class="row"  style="width:25%;float:left;padding-left:5px;">

        <div class="post-content">

            <div class="post-container">

                <h1>{{ $post->title }}</h1>

                <p style="color:#888;">{{ date ('M-d-Y',strtotime($post->created_at)) }}</p>

       <!--         <p><img src="{{asset('thumbnails/'.$post->thumbnail)}}" class="responsive"></p> -->

                <p><?php echo html_entity_decode($post->content); ?></p>

            </div>

        </div>

    </div>
    <div class="row" style="width:25%;float:left;padding-left:5px;">

        <div class="post-content">

            <div class="post-container">
                <div class="container articles-page">

                    <div class="articles-title">

                    </div>      
                    <div class="container">
                        <h3>Recent Posts</h3>
                     @foreach($result as $result)
                    <div class="col-md-4">

                        <div class="content">

                        <a href="{{$result->url}}" class="latest-heading">{{substr(($result->title),0,88)}}..</a>

                            <img style="padding: 5px; width:100%; height:218px;" src="{{asset('thumbnails/'.$result->thumbnail)}}" class="img-responsive">

                        </div>

                    </div>

                    @endforeach

                    @endif
                    @else
                         @foreach($post as $post)
 error is here =>      <p><a href="{{ $post->url }}"><img style="width:100px;" src="{{asset('thumbnails/'.$post->thumbnail)}}" class="responsive"></a><br>
                        <a href="{{$post->url}}">{{substr(($post->title),0,88)}}..</a></p>
                      </tr>
                   @endforeach
                   @endif
                    <div class="row col-md-12">
                    <div class="panel-body">

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

</div>

Ошибка в этой строке:

                      <p><a href="{{ $post->url }}"><img style="width:100px;" src="{{asset('thumbnails/'.$post->thumbnail)}}" class="responsive"></a><br>

Код в файле контроллера:

//view post

public function viewpost($url){

  $url ='articles/'.$url;

    if(count(posts::where('url', '=', $url)->first())<>1){

        return redirect()->back();

    }

    return view('viewpost')

    ->with('post', posts::where('url', '=', $url)->first());

}

    //all posts route

    public function allposts(){

    $post=posts::All();

      if(count($post)==0){

        return redirect()->back()->with('message', 'There are no posts at this moment');

      }

      else{

        return view ('admin-SchoolDir.allposts',array('post' => $post))->with("title","Admin-Allposts");

      }

    }

1 Ответ

0 голосов
/ 02 июня 2018

Пост, определенный в методе viewpost, является объектом, в то время как вы хотите использовать его в качестве массива в вашем представлении.

Ваш код должен быть таким

 public function viewpost($url){

   $url ='articles/'.$url;

   if(count(posts::where('url', '=', $url)->first())<>1){
      return redirect()->back();
    }

   return view('viewpost')->with(['post'=>posts::where('url', '=', $url)->first(),'posts'=>posts::where('url', '=', $url)->get()]);
 }

И в вашемview change

 @foreach($post as $post)
 to  
 @foreach($posts as $post)

Редактировать:
Вам не нужно использовать счетчик для одного объекта, чтобы проверить существование, ваш код должен быть таким

 public function viewpost($url){

      $url ='articles/'.$url;

      if(!posts::where('url', '=', $url)->first()){
       return redirect()->back();
      }

     return view('viewpost')->with(['post'=>posts::where('url', '=', $url)->first(),'posts'=>posts::where('url', '=', $url)->get()]);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...