函数 PendingResourceRegistration::name(),1 的参数太少,在第 18 行传入 C:\xampp\htdocs\project\routes\web.php,正好是 2

Pop*_*jan 1 php resources controller routes laravel

Too few arguments to function Illuminate\Routing\PendingResourceRegistration::name(), 
1 passed in C:\xampp\htdocs\project\routes\web.php on line 18
and exactly 2 expected.
Run Code Online (Sandbox Code Playgroud)

我在 laravel 上尝试 Klorofil 模板,但它的工作完美。我不知道为什么,但我好几次都没有打开 laravel 和 php。当我再次打开这个项目时,这正在发生。我只记得也许我更改了路由或控制器,因为我想在没有刷新和错误的情况下使用 ajax,而我忘记像以前一样更改。但是什么时候再次搜索这个模板可能不是我的错...或者php有更新。

网页.php

Route::get('/', function () {
    return view('main');
});


Route::resource('siswa', 'SiswaController')->name('siswa');
Route::get('/login','AuthController@login')->name('login');
Route::post('/postlogin', 'AuthController@postlogin');
Route::get('/logout','AuthController@logout');


Route::get('/dashboard', 'DashboardController@index')->middleware('auth');
Route::get('siswa.index', 'SiswaController@index')->middleware('auth');
Route::post('siswa.index/import', 'SiswaController@import')->middleware('auth');
Run Code Online (Sandbox Code Playgroud)

控制器

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Siswa;
use DB;
use Excel;

class SiswaController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $siswas = siswa::all()->toarray();
        return view('siswa.index', compact('siswas'));

        $siswas = siswa::table('siswas')->orderBy('id', 'DESC')
        ->get();
        return view('siswa.index', compact('siswas'));
    }


    public function import(Request $request)
    {
       $this->validate($request, [
      'select_file'    => 'required|mimes:xls,xlsx'
       ]);

       $path = $request->file('select_file')->getRealPath();

       $siswas = Excel::load($path)->get();

       if ($siswas->count() > 0) 
       {
         foreach ($siswas->toArray() as $key => $value) 
         {
           foreach ($value as $row) 
           {
             $insert_data[] = array(
                    'gambar'         =>  $row['gambar'],
                    'name'           =>  $row['name'],
                    'nisn'           =>  $row['nisn'],
                    'kelas'          =>  $row['kelas'],
                    'jurusan'        =>  $row['jurusan'],
                    'jns_kel'        =>  $row['jns_kel'],
                    'tanggal_lahir'  =>  $row['tanggal_lahir'],
                    'alamat'         =>  $row['alamat']
             );


           }


         }

       if (!empty($insert_data)) 
       {
           siswa::table('siswas')->insert($insert_data);
       }


     }
     return back()->with('success', 'Data Excel Berhasil Di Tambah.');




  }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
       return view('siswa.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $this->validate($request, [
              'gambar'    => 'required',
              'name'   => 'required',
              'nisn'   => 'required',
              'kelas'   => 'required',
              'jurusan'   => 'required',
              'jns_kel'   => 'required',
              'tanggal_lahir'   => 'required',
              'alamat'   => 'required'

        ]);
        $siswa = new siswa([
               'gambar'   => $request->get('gambar'),
               'name'  => $request->get('name'),
               'nisn'  => $request->get('nisn'),
               'kelas'  => $request->get('kelas'),
               'jurusan'  => $request->get('jurusan'),
               'jns_kel'  => $request->get('jns_kel'),
               'tanggal_lahir'  => $request->get('tanggal_lahir'),
               'alamat'  => $request->get('alamat')


        ]);
        $siswa->save();
        return redirect()->route('siswa.index')->with('success', 'SUKSES TAMBAH DATA');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $siswa = siswa::find($id);
        return view('siswa.ubah', compact('siswa', 'id'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $this->validate($request, [
              'gambar'    => 'required',
              'name'   => 'required',
              'nisn'   => 'required',
              'kelas'   => 'required',
              'jurusan'   => 'required',
              'jns_kel'   => 'required',
              'tanggal_lahir'   => 'required',
              'alamat'   => 'required'        

        ]);
        
        $siswa = siswa::find($id);
        $siswa->gambar = $request->get('gambar');
        $siswa->name = $request->get('name');
        $siswa->nisn = $request->get('nisn');
        $siswa->kelas = $request->get('kelas');
        $siswa->jurusan = $request->get('jurusan');
        $siswa->jns_kel = $request->get('jns_kel');
        $siswa->tanggal_lahir = $request->get('tanggal_lahir');
        $siswa->alamat = $request->get('alamat'); 
        $siswa->save();
        return redirect()->route('siswa.index')->with('success', 'DATA TERBARUI');

    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $siswa = siswa::find($id);
        $siswa->delete();
        return redirect()->route('siswa.index')->with('success', 'DATA SUDAH DI HAPUS');

    }
}
Run Code Online (Sandbox Code Playgroud)

查看文件夹:siswa.index

@extends('main')
@section('content')
<div class="main">
    <div class="main-content">
        <div class="container-fluid">
           <div class="row">
              <div class="col-md-10" style="margin: 70px 240px" >
                  <div class="panel">
                                <div class="panel-heading">
                                    <h3 class="panel-title">Data Siswa</h3>
                                    <div align="right">
            <!-- Button trigger modal -->
<button type="button" class="btn" data-toggle="modal" data-target="#exampleModal">
  <i class="inr-plus-circle">Tambah Data Siswa</i>
</button>

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel" >Tambah Data Siswa</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        
        <form method="POST" action="{{url('siswa')}}">
            {{csrf_field()}}
                <div class="form-group">
                <input type="text" name="gambar" class="form-control" placeholder="Berkas Gambar">
            </div>

                <div class="form-group">
                        <input type="text" name="name" class="form-control" placeholder="Masukkan Nama">
                </div>

                <div class="form-group">
                        <input type="text" name="nisn" class="form-control" placeholder="Masukkan nisn">
                </div>

                <div class="form-group" class="form-control"><p>Masukkan Kelas   :</p>
                <select name="kelas" class="bg-primary text-black">
                <option>X</option>
                <option>XI</option>
                <option>XII</option>
                </select>
                </div>

                <div class="form-group">
                        <input type="text" name="jurusan" class="form-control" placeholder="Jurusan Mu Apa Dong">
                </div>

                <div class="form-group" class="form-control"><p>Jenis Kelamin   :</p>
                <select name="jns_kel" class="bg-primary text-black">
                <option>Cowok</option>
                <option>Cewek</option>
                </select>
                </div>

                <div class="form-group">
                <input type="text" name="tanggal lahir" class="form-control" placeholder="Tanggal Lahir">
                </div>



            <div class="form-group">
                <input type="text" name="alamat" class="form-control" placeholder="Jalan Rumah Mu">
            </div>
            <!-- <div class="form-group">
                <button type="submit" class="btn btn-primary" style="color: black">Kirim</button>
            </div> -->
        
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-primary" data-dismiss="modal" style="background-color: cyan">Close</button>
        <button type="submit" class="btn btn-primary" style="background-color: cyan">Submit</button>
        </form>
      </div>
    </div>
  </div>
</div>
            <br>
            <br>
        </div>
                                </div>
                                <div class="panel-body">
                                    <table class="table table-hover">
                                        <thead>
                                            <tr>
                                                <th>Gambar</th>
                <th>Name</th>
                <th>Nisn</th>
                <th>Kelas</th>
                <th>Jurusan</th>
                <th>Jenis Kelamin</th>
                <th>Tanggal Lahir</th>
                <th>Alamat</th>
                <th>Ubah</th>
                <th>Hapus</th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            @foreach($siswas as $row)
            <tr>
                <td><img src="<?= $row["gambar"]; ?>" width="50"></td>
                <td>{{$row['name']}}</td>
                <td>{{$row['nisn']}}</td>
                <td>{{$row['kelas']}}</td>
                <td>{{$row['jurusan']}}</td>
                <td>{{$row['jns_kel']}}</td>
                <td>{{$row['tanggal_lahir']}}</td>
                <td>{{$row['alamat']}}</td>
                <td><button class="btn btn-warning"><a href="{{action('SiswaController@edit', $row['id'])}}" style="color: black">UBAH</a></button></td>
                <td>
                    <form method="post" class="delete_form" action="{{action('SiswaController@destroy', $row['id'])}}">
                        {{csrf_field()}}
                        <input type="hidden" name="_method" value="DELETE">
                        <button type="submit" class="btn btn-danger">HAPUS</button>
                    </form>
                </td>
            </tr>
            @endforeach
                                        </tbody>
                                    </table>
                                </div>
                            </div>
              </div> 
           </div>
        </div>
    </div>
</div>
@stop



@section('content1')
<div class="row">
    <div class="col-md-12">
        <br>
        <h3 align="center">Data Siswa</h3>
        <br>
        @if($message = Session::get('success'))
        <div class="alert alert-success">
            <p>{{$message}}</p>
        </div>
        @endif
        <!-- tombol menambah data baru manual -->
        <div align="right">
            <a href="{{route('siswa.create')}}" class="btn btn-primary">Tambah</a>
            <br>
            <br>
        </div>
    <!-- akhir tombol tambah -->
    



    <!-- menambah choose file excel -->
    @if(count($errors) > 0)
    <div class="alert alert-danger">
        Upload Validation Error<br><br>
        <ul>
            @foreach($errors->all() as $error)
            <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
    @endif


  


    <form method="post" enctype="multipart/form-data"
    action="{{ url('/siswa.index/import') }}">
    {{ csrf_field() }}
    <div class="form-group">
        <table class="table">
            <tr>
                <td width="40%" align="right"><label>Pilih Untuk Upload File</label></td>
                <td width="30">
                    <input type="file" name="select_file">
                </td>
                <td width="30%" align="left">
                    <input type="submit" name="upload" class="btn btn-primary" value="upload">
                </td>
            </tr>
            <tr>
                <td width="40%" align="right"></td>
                <td width="30"><span class="text-muted">.xls, .xslx</span></td>
                <td width="30%" align="left"></td>
            </tr>
        </table>
    </div>
        








    </form>
    <!-- akhir menambah choose file excel -->
    


    
        <div class="table-responsive">
        <table class="table table-bordered">
            <tr>
                <th>Gambar</th>
                <th>Name</th>
                <th>Nisn</th>
                <th>Kelas</th>
                <th>Jurusan</th>
                <th>Jenis Kelamin</th>
                <th>Tanggal Lahir</th>
                <th>Alamat</th>
                <th>Ubah</th>
                <th>Hapus</th>
            </tr>
            @foreach($siswas as $row)
            <tr>
                <td><img src="<?= $row["gambar"]; ?>" width="50"></td>
                <td>{{$row['name']}}</td>
                <td>{{$row['nisn']}}</td>
                <td>{{$row['kelas']}}</td>
                <td>{{$row['jurusan']}}</td>
                <td>{{$row['jns_kel']}}</td>
                <td>{{$row['tanggal_lahir']}}</td>
                <td>{{$row['alamat']}}</td>
                <td><button class="btn btn-warning"><a href="{{action('SiswaController@edit', $row['id'])}}" style="color: black">UBAH</a></button></td>
                <td>
                    <form method="post" class="delete_form" action="{{action('SiswaController@destroy', $row['id'])}}">
                        {{csrf_field()}}
                        <input type="hidden" name="_method" value="DELETE">
                        <button type="submit" class="btn btn-danger">HAPUS</button>
                    </form>
                </td>
            </tr>
            @endforeach
        </table>
    </div>
    </div>
</div>


    
@endsection
Run Code Online (Sandbox Code Playgroud)

查看文件夹:main.blade.php

<!doctype html>
<html lang="en">

<head>
    <title>Dashboard | Klorofil - Free Bootstrap Dashboard Template</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <!-- VENDOR CSS -->
    <link rel="stylesheet" href="{{asset('admin/assets/vendor/bootstrap/css/bootstrap.min.css')}}">
    <link rel="stylesheet" href="{{asset('admin/assets/vendor/font-awesome/css/font-awesome.min.css')}}">
    <link rel="stylesheet" href="{{asset('admin/assets/vendor/linearicons/style.css')}}">
    <link rel="stylesheet" href="{{asset('admin/assets/vendor/chartist/css/chartist-custom.css')}}">
    <!-- MAIN CSS -->
    <link rel="stylesheet" href="{{asset('admin/assets/css/main.css')}}">
    <!-- FOR DEMO PURPOSES ONLY. You should remove this in your project -->
    <link rel="stylesheet" href="{{asset('admin/assets/css/demo.css')}}">
    <!-- GOOGLE FONTS -->
    <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700" rel="stylesheet">
    <!-- ICONS -->
    <link rel="apple-touch-icon" sizes="76x76" href="{{asset('admin/assets/img/apple-icon.png')}}">
    <link rel="icon" type="image/png" sizes="96x96" href="{{asset('admin/assets/img/favicon.png')}}">
</head>

<body>
    <!-- WRAPPER -->
    <div id="wrapper">
        <!-- NAVBAR -->
        <nav class="navbar navbar-default navbar-fixed-top">
            <div class="brand">
                <a href="index.html"><img src="{{asset('admin/assets/img/logo-dark.png')}}"  alt="Klorofil Logo" class="img-responsive logo"></a>
            </div>
            <div class="container-fluid">
                <div class="navbar-btn">
                    <button type="button" class="btn-toggle-fullwidth"><i class="lnr lnr-arrow-left-circle"></i></button>
                </div>
                <form class="navbar-form navbar-left">
                    <div class="input-group">
                        <input type="text" value="" class="form-control" placeholder="Search Data Siswa...">
                        <span class="input-group-btn"><button type="button" class="btn btn-primary">Go</button></span>
                    </div>
                </form>
                
                <div id="navbar-menu">
                    <ul class="nav navbar-nav navbar-right">
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle icon-menu" data-toggle="dropdown">
                                <i class="lnr lnr-alarm"></i>
                                <span class="badge bg-danger">5</span>
                            </a>
                            <ul class="dropdown-menu

Chr*_*hia 8

解决方案是将您的路线更改为:

Route::resource('siswa', 'SiswaController')->name('*', 'siswa')
Run Code Online (Sandbox Code Playgroud)

这可能来得很晚,但我刚刚遇到了同样的错误。发生错误是因为当我们使用时Route::resource,Laravel 需要 2 个参数而不是 1 个。例如,在您的:

Route::resource('siswa', 'SiswaController')->name('*', 'siswa')
Run Code Online (Sandbox Code Playgroud)

你只定义了名字。因此,Laravel 为您定义了路线 'siswa'。

但是因为你在使用Route::resource,里面定义了很多路由,比如create、edit、delete等等。所以 Laravel 需要将路由定义为“siswa.create”、“siswa.delete”等。自然地,我们不能期望列出所有的方法,所以加上 * 有助于 Laravel 理解它应该创建命名路由为 siswa.* 并且 * 代表所有不同的方法(例如创建、编辑、删除和很快)。希望这有帮助!


小智 2

路线:

Route::get('siswa.index', 'SiswaController@index')->middleware('auth');
Run Code Online (Sandbox Code Playgroud)

造成了你所有的问题。您在顶部声明了一个路由资源,然后声明了另一个名为 的路由siswa.index,该路由由于该行而已经存在Route::resource('siswa', 'SiswaController')->name('siswa');。创建资源使路由如下:

Route::get('siswa', 'SiswaController@index')->name('siswa.index);
Route::post('siswa', 'SiswaController@store')->name('siswa.store);
Route::get('siswa/create', 'SiswaController@create')->name('siswa.create);
Route::post('siswa/{siswa}', 'SiswaController@update')->name('siswa.update);
Route::get('siswa/{siswa}', 'SiswaController@show')->name('siswa.show);
Route::delete('siswa/{siswa}', 'SiswaController@destroy')->name('siswa.destroy);
Route::get('siswa/{siswa}/edit', 'SiswaController@edit')->name('siswa.edit);
Run Code Online (Sandbox Code Playgroud)

因此,如果一个路由名称被声明两次,它将抛出一个缺少参数的错误。