За последние 24 часа нас посетили 22528 программистов и 1038 роботов. Сейчас ищут 597 программистов ...

как вывести все статьи в show.blade.php?

Тема в разделе "Laravel", создана пользователем Qvei, 24 дек 2019.

Метки:
  1. Qvei

    Qvei Новичок

    С нами с:
    10 ноя 2019
    Сообщения:
    60
    Симпатии:
    4
    Подскажите пожалуйста.. Есть контроллер NewsController с кодом:
    Код (Text):
    1. public function indexxxx() {
    2.         $novinis = App\Novini::latest('date')->get();
    3.     return view('novinis.index', compact('novinis'));
    4.  
    5.     }
    6.  
    7.     public function showwww($id) {
    8.         $novini = App\Novini::findOrFail($id);
    9.         $novini->increment('view');
    10.         return view('novinis.show', compact('novini'));
    11.     }
    12. }
    Пытаюсь вывести в showwww.blade.php все посты ($novinis), пробовал так:
    Код (Text):
    1. public function showwww($id) {
    2.         $novini = App\Novini::findOrFail($id);
    3.         $novini->increment('view');
    4.         $novinis = App\Novini::latest('date')->get();
    5.         return view('novinis.show', compact('novini', 'novinis'));
    6.     }
    В show.blade.php через цикл @foreach посты то выводятся но перейти по ним невозможно.
    Что я делаю не так? подскажите пожалуйста
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    а типа как выглядит view мы сами должны наВанговать?
    ну и так - как то все странно, ощущение что вы в MVC не все понимаете и путаете их )))
    какие ссылки ведут на новости? есть ли роут соответствующий? есть ли view? тот самый novinis/show.blade.php
    есть ли какие то ошибки на экране?
     
  3. Qvei

    Qvei Новичок

    С нами с:
    10 ноя 2019
    Сообщения:
    60
    Симпатии:
    4
    Извиняюсь, я новичек. Роута два:
    Код (Text):
    1. Route::get('/novinis', 'NovinisController@indexxxx');
    2. Route::get('/novinis/{novini}', 'NovinisController@showwww');
    есть модель:
    Код (Text):
    1. namespace App;
    2.  
    3. use Illuminate\Database\Eloquent\Model;
    4.  
    5. class Novini extends Model
    6. {
    7.  
    8.     public function user()
    9.     {
    10.         return $this->belongsTo(User::class);
    11.     }
    12.  
    13.     public function comments()
    14.     {
    15.         return $this->morphMany(Comment::class, 'commentable')->whereNull('parent_id');
    16.     }
    17.  
    18. }
    indexxxx.blade.php циклом из базы так вывожу:
    Код (Text):
    1. @foreach ($novinis as $novini)
    2.   <div class="row shadowcateg">
    3.   <div class="col-md-3 p-0">
    4.     <div class="view overlay rounded z-depth-1">
    5.       <a href="novinis/{{$novini->id}}">
    6.       <img class="img-fluid lazyload rounded" data-src="{{ URL::to('/') }}/siteimages/{{ $novini->img }}" alt="{{ $novini->alt }}"></a>
    7.     </div>
    8.   </div>
    9.   <div class="col-md-9">
    10.     <p class="dark-grey-text mt-2">
    11.     </p>
    12.     <a href="novinis/{{$novini->id}}">
    13.       <h5 class="font-weight-normal">{{ $novini->title }}</h5>
    14.       <i class="fa fa-angle-right float-right"></i>
    15.     </a>
    16.     <div class="d-flex justify-content-between align-items-center">
    17.     <p style="font-size: 12px">{{$novini->date}}</p>
    18.     <div class="btn-group">
    19.       <button type="button" class="btn btn-sm red"><a href="novinis/{{$novini->id}}">смотреть</a></button>
    20.     </div>
    21.   </div>
    22.   </div>
    23. </div>
    24. <br>
    25. @endforeach    
    и showwww.blade.php в котором вывожу так:
    Код (Text):
    1. <p><h1>{{ $novini->title }}</h1></p>
    2. <small style="font-size: 12px">{{$novini->date}} <i class="fa fa-eye ml-2"></i> {{$novini->view}}</small>
    3. <div class="container-fluid p-0">
    4.     <img class="img-fluid mt-1 rounded" src="{{ URL::to('/') }}/siteimages/{{ $novini->img }}" alt="{{ $novini->alt }}">
    5.   <div class="desc">{{$novini->title_image}}</div>
    6. </div>
    7.   <hr>
    8. {!! $novini->contt !!}
    Ошибок нету никаких. Как писал выше, в контроллере пробывал так:
    Код (Text):
    1. public function showwww($id) {
    2.         $novini = App\Novini::findOrFail($id);
    3.         $novini->increment('view');
    4.         $novinis = App\Novini::latest('date')->get();
    5.         return view('novinis.showwww', compact('novini', 'novinis'));
    6.     }
    И в showwww.blade.php через цикл вывожу так:
    Код (Text):
    1. @foreach ( $novinis as $novini )
    2. <a href="novinis/{{ $novini->title }}">
    3. ...
    4. @endforeach
    но когда перехожу по ссылке то URL вместо http://my.site/novinis/1 получается такой: http://my.site/novinis/novinis/1
     
    #3 Qvei, 24 дек 2019
    Последнее редактирование: 24 дек 2019
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    Ну для начала все ссылки начинать с / чтоб относительно корня были
     
  5. Qvei

    Qvei Новичок

    С нами с:
    10 ноя 2019
    Сообщения:
    60
    Симпатии:
    4
    Подскажите, я правильно view вывожу или нужно через share()?
    Код (Text):
    1.         return view('novinis.showwww', compact('novini', 'novinis'));
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    я вот честно первый раз про share() слышу даже
    выводите правильно, по канонам Laravel
     
  7. Qvei

    Qvei Новичок

    С нами с:
    10 ноя 2019
    Сообщения:
    60
    Симпатии:
    4
    Воистину!
     
  8. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    share() - это немного о другом. Это передача данных во все представления сразу. Т.е., например, можно в него менюшку запихнуть и не передавать данные для меню в каждый шаблон.
     
  9. Qvei

    Qvei Новичок

    С нами с:
    10 ноя 2019
    Сообщения:
    60
    Симпатии:
    4
    Спасибо, буду пробовать