0

I try to made a crud but I found this error :

Undefined variable: playlists (View: C:\xampp\htdocs\laravel53\resources\views\pages\playlist\index.blade.php)

create is working... but index no...

I am using laravel 5.4

and this is my controller :

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\Requests;
use Auth,
    Response,
    Storage,
    Session,
    Redirect,
    Validator,
    Image,
    Input;
use App\Playlist;

class PlaylistsController extends Controller {

    public function index() {

          $playlists = Playlist::all();
          return View('pages.playlist.index')->withPlaylists($playlists);

    }

    public function create() {
        return view('pages.playlist.create');
    }

    public function store(\Illuminate\Http\Request $request) {

        $this->validate($request, [
        'title' => 'required',
        'description' => 'required',
        'authors' => 'required',
        'date' => 'required',
        'url' => 'required',
        'menssage' => 'required',

        ]);
        $input = $request->all();

        Playlist::create($input);


        Session::flash('flash_message', 'Video/img successfully added!');
         return view('admin');

    }
    public function show($id) {

        $playlists = Playlist::findOrFail($id);

        return view('pages.playlist.show')->withPlaylits($playlists);

    }

    public function edit($id) {

        $playlists = Playlist::findOrFail($id);

        return view('pages.playlist.edit')->withPlaylits($playlists);

    }

    public function update(Request $request, $id) {

        $playlists = Playlist::findOrFail($id);

        $this->validate($request, [
        'title' => 'required',
        'description' => 'required',
        'authors' => 'required',
        'date' => 'required',
        'url' => 'required',
        'menssage' => 'required',
        ]);

        $input = $request->all();

    $playlists ->fill($input)->save();

    Session::flash('flash_message', 'Task successfully added!');

    return redirect()->back();

}


    public function destroy($id) {


      $playlists = Playlist::findOrFail($id);

    $playlists ->delete();

    Session::flash('flash_message', 'Task successfully deleted!');

    return redirect()->route('playlist.index');
}

}

My index :

<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        @section('content')

<h1>Task List</h1>
<p class="lead">Here's a list of all your tasks. <a href="{{ route('playlist.create') }}">Add a new one?</a></p>

<hr>

   @foreach($playlists as $playlist) 

    <h3>{{ $playlist->title }}</h3>
    <p>{{ $playlist->description}}</p>
    <p>{{ $playlist->authors}}</p>
    <p>{{ $playlist->date}}</p>
    <p>{{ $playlist->url}}</p>
    <p>{{ $playlist->menssage}}</p>

    @endforeach 

    <p>
        <a href="{{ route('playlist.show', $playlist->id) }}" class="btn btn-info">View Task</a>
        <a href="{{ route('playlist.edit', $playlist->id) }}" class="btn btn-primary">Edit Task</a>
    </p>
    <hr>


@stop

        @extends('layouts.master')

@section('content')


    </body>
    </html>
4

2 回答 2

0

控制器

public function index() {

      $playlists = Playlist::all();
      return View('pages.playlist.index')->with(['data', $playlists]);

}

在您的索引刀片中,只需了解一下,删除刀片相关代码即可。

<?php 
print_r($data);
?>

或者
你可以简单地做

public function index() {

      $playlists = Playlist::all();
      return view('pages.playlist.index',['data'=>$playlists]);

}

并在您的索引刀片中执行print_r($data)并查看结果,然后相应地循环遍历它。从索引刀片上移除所有东西,因为您正在那里扩展主刀片。所以删除所有内容(HTML),只需在索引刀片中编写一行代码,即 print_r($data)。

于 2017-02-04T00:10:23.273 回答
0

你应该在你的视图中写这个

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        @section('content')

<h1>Task List</h1>
<p class="lead">Here's a list of all your tasks. <a href="{{ route('playlist.create') }}">Add a new one?</a></p>
<hr>
   @foreach($playlists as $playlist) 

    <h3>{{ $playlist->title }}</h3>
    <p>{{ $playlist->description}}</p>
    <p>{{ $playlist->authors}}</p>
    <p>{{ $playlist->date}}</p>
    <p>{{ $playlist->url}}</p>
    <p>{{ $playlist->menssage}}</p>

    <p>
        <a href="{{ route('playlist.show', $playlist->id) }}" class="btn btn-info">View Task</a>
        <a href="{{ route('playlist.edit', $playlist->id) }}" class="btn btn-primary">Edit Task</a>
    </p>
@endforeach 
    <hr>
@stop
        @extends('layouts.master')
@section('content')
    </body>
    </html>

在你的控制器方法中你写这个

public function index() {
          $playlists = Playlist::all();
          return View('pages.playlist.index', comapct('playlists'));
    }

这将解决您的问题

于 2017-02-04T03:34:06.110 回答