首页 > 解决方案 > ErrorException 未定义变量 $siswa

问题描述

我是程序员的新人。当我想运行我的应用程序时,有一个错误异常未定义变量。

这是web.php文件中使用的代码:

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
    return view('siswa');
});



Route::get('/siswa', 'SiswaController@index');
Route::get('/siswa/export_excel', 'SiswaController@export_excel');
Route::post('/siswa/import_excel', 'SiswaController@import_excel');

我认为我的问题在我的刀片上(视图)。我展示了一些我的刀片,因为这里无法附加很多代码:

        <table class='table table-bordered'>
            <thead>
                <tr>
                    <th>No</th>
                    <th>Nama</th>
                    <th>NIS</th>
                    <th>Alamat</th>
                </tr>
            </thead>
            <tbody>
                @php $i=1 @endphp
                @foreach($siswa as $s)
                <tr>
                    <td>{{ $i++ }}</td>
                    <td>{{$s->nama}}</td>
                    <td>{{$s->nis}}</td>
                    <td>{{$s->alamat}}</td>
                </tr>
                @endforeach
            </tbody>
        </table>
    </div>

这是我的控制器的一部分,我想要发布,但是当我想要发布它时有限制,因为它会说“很多代码”

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Siswa;

use Session;

use App\Exports\SiswaExport;
use App\Imports\SiswaImport;
use Maatwebsite\Excel\Facades\Excel;
use App\Http\Controllers\Controller;

class SiswaController extends Controller
{
   public function index()
    {
        $siswa = Siswa::all();
        return view('siswa',['siswa'=>$siswa]);
    }

    public function export_excel()
    {
        return Excel::download(new SiswaExport, 'siswa.xlsx');
    }

    public function import_excel(Request $request) 
    {
        // validasi
        $this->validate($request, [
            'file' => 'required|mimes:csv,xls,xlsx'
        ]);

        // menangkap file excel
        $file = $request->file('file');

        // membuat nama file unik
        $nama_file = rand().$file->getClientOriginalName();

        // upload ke folder file_siswa di dalam folder public
        $file->move('file_siswa',$nama_file);

        // import data
        Excel::import(new SiswaImport, public_path('/file_siswa/'.$nama_file));

        // notifikasi dengan session
        Session::flash('sukses','Data Siswa Berhasil Diimport!');

        // alihkan halaman kembali
        return redirect('/siswa');
    }
}

标签: phplaravel

解决方案


定义主路由,并从 siswaController 中的索引方法传递视图中的参数“siswa”。

在 web.php 中:

Route::get('/','SiswaController@index');

在 SiswaController.php 中:

public function index(){
 $siswa = ['name'=>'John',age=>23, email=>'joba@shija.com'];
 return view('siswa',['siswa'=>'$siswa']);}

推荐阅读