Недопустимый аргумент для foreach () - laravel 5.6 - PullRequest
0 голосов
/ 22 мая 2018

новичок здесь практикует laravel, я делаю инвентарь для фильмов, используя laravel 5.6 ... где я могу выполнять основные функции CRUD.

Здесь я сортирую фильмы по жанрам.однако я пришел с этой ошибкой Недопустимый аргумент, предоставленный для foreach ();

вот мой маршрут: web.php

Route :: resource ('movies', 'MoviesController');

Route :: get('movies / year / {movie}', 'MoviesController @ выпустил');

Route :: get ('movies / genre / {genre}', 'MoviesController @ getgenre');

вот мой контроллер: MoviesController.php

public function getgenre($genre){
    $movies = Movie::where('genre', $genre)->whereIn('status', [1])->orderBy('title', 'asc')->get();
    return view('genre', compact('movies'));
}

вот мой взгляд: genre.blade.php

@ extends ('layouts.app')

@ section ('content')

<div class="row">
    <div class="col-md-10">
        @if($movies->count() < 1)
            <h1 style="text-align: center">No Movie Found</h1>
        @else
            @foreach($movies as $movie)
                <div class="card" style="margin-bottom: 10px;">
                    <div class="card-body">
                        <div class="card-title">
                            {{ ucwords($movie->title) }}
                        </div>
                        <div class="card-text">
                            {{ ucfirst($movie->genre) }} | {{$movie->released}} | 

                            @if($movie->seen == 1)
                                Seen: Yes
                            @else
                                Seen: No
                            @endif

                            <div style="margin-top: 5px">
                                {{ Form::open(['route' => ['movies.edit', $movie->id], 'class' => 'formupdate', 'method' => 'GET']) }}
                                    {{ Form::submit('Update', ['class' => 'btn btn-primary col-md-2']) }}
                                {{ Form::close() }}
                            </div>

                            <div style="margin-top: 5px">
                                {{ Form::open(['route' => ['movies.destroy', $movie->id], 'class' => 'formdelete', 'method' => 'DELETE']) }}

                                    {{ Form::hidden('hidden', 'hidden') }}
                                    {{ Form::submit('Delete', ['class' => 'btn btn-danger col-md-2']) }}
                                {{ Form::close() }}
                            </div>
                        </div>
                    </div>
                </div>
            @endforeach

        <div class="pagination" style="margin-top: 10px; text-align: center;">
            {{ $movie->links() }}
        </div>
        @endif
    </div>
    <div class="col-md-2">

    </div>
</div>

@ stop

Я протестировал его dd (): и он дает результаты:

попытался протестировать его с помощью dd ()

вот ошибка: вот ошибка

спасибо,

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

у вас есть две проблемы: 1- Обновите это, где ожидает массив, и вы используете разбивку на страницы, и вы не возвращаете данные в виде разбивки на страницы

      $movies = Movie::where('genre', $genre)->whereIn('status', [1])>orderBy('title', 'asc')->paginate(10);

2- в представлении, которое вы написали $ movie->ссылки ();обновить его до

        $movies->links(); 
0 голосов
/ 22 мая 2018

Обновите эту строку, whereIn ожидает массив

$movies = Movie::where('genre', $genre)->whereIn('status', [1])->orderBy('title', 'asc')->get();
...