Как проверить, является ли переменная пустой в laravel? - PullRequest
0 голосов
/ 03 июня 2018

У меня есть этот код в моем файле просмотра:

                        @if(!empty($slug))
                            dd(11);
                        <a href="{{$post->url}}" class="latest-heading">{{substr(($post->title),0,88)}}..</a>

                        @else
                        dd(22);
                        <a href="{{$post->slug}}" class="latest-heading">{{substr(($post->title),0,88)}}..</a>
                        @endif

У меня есть одно сообщение, в котором есть данные в столбце таблицы базы данных слагов.Других постов нет.Они имеют данные только в столбце URL.Но в данный момент я вижу dd (22) рядом с каждым постом.Сообщение с данными в столбце slug имеет слаг в структуре URL.Другие посты не имеют ничего своих URL.Их URL-адрес: website.com/articles

Есть идеи?

Кстати, это код в моем файле маршрутов:

 Route::get('articles/{url}', 'postsController@viewpost');

Не знаете, как редактироватьэто поставить статьи / {slug}

Контроллер сообщений:

 public function viewpost($url,$slug){
  if ( empty($slug) ) {
  $url ='articles/'.$url;
  }  else {
  $url = 'articles/'.$slug;

}

  $posts = posts::where('post_status', '')->get();
  if ( empty($slug) ) {
  $post = $posts->where('url', $url)->first();
  }  else {
  $post = $posts->where('slug', $slug)->first();
}

  if ( empty($post) )
return redirect()->back();


return view('viewpost')->with('post', $post)->with('posts', $posts);
}

Код последних сообщений:

<h3>Recent Posts</h3>
@foreach($posts as $post)
     <p><a href="{{ URL::to($post->url) }}"><img style="width:100px;" src="{{asset('thumbnails/'.$post->thumbnail)}}" class="responsive"></a><br>
         <a href="{{ URL::to($post->url) }}">{{substr(($post->title),0,88)}}..</a></p>               
@endforeach

Ответы [ 2 ]

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

Мой другой ответ был: Почему вы всегда видите дд (22).для устранения проблемы:

public function viewpost($url){
  $posts = posts::where('post_status', '');
  $post = $posts->where('url', $url)->orWhere('slug' , $url)->first();
}

  if ( empty($post) )
return redirect()->back();


return view('viewpost')->with('post', $post)->with('posts', $posts->get());
} 

и ваш клинок:

@if(!empty($post->slug))
                            dd(11);
                        <a href="{{'articles/'.$post->slug}}" class="latest-heading">{{substr(($post->title),0,88)}}..</a>

                        @else
                        dd(22);
                        <a href="{{'articles/'.$post->url}}" class="latest-heading">{{substr(($post->title),0,88)}}..</a>
                        @endif
0 голосов
/ 03 июня 2018

Эта строка в вашем коде

Route::get('articles/{url}', 'postsController@viewpost');

отправляет только $ url в функцию Controller, поэтому $ slug всегда пусто.Также вы отправляете переменные $ post и $ posts на ваш просмотр, поэтому $ slugs там всегда пусто.Вот почему всегда отображается dd (22)

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