【问题标题】:ErrorException Undefined variable $siswaErrorException 未定义变量 $siswa
【发布时间】:2021-09-08 10:04:24
【问题描述】:

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

这是 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');
    }
}

【问题讨论】:

  • 您访问的哪个路线导致错误??
  • 我对路由、刀片(视图)还是控制器感到困惑。因为当我发布我的刀片或控制器时,它不能
  • 尝试把刀片文件或控制器文件的代码放上去,这样我们就可以理解是什么导致了错误!
  • 你可以添加你的控制器或你用来返回这个视图的函数
  • 贴出你使用return语句打开这个刀片文件的代码

标签: php laravel


【解决方案1】:

您必须返回带有 $siswa 变量的视图才能通过刀片模板访问它。 https://laravel.com/docs/8.x/views

【讨论】:

    【解决方案2】:

    定义主路由,并从 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']);}
    

    【讨论】:

    • 我被发布了我的控制器
    猜你喜欢
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2018-01-26
    • 2020-09-24
    • 2018-11-29
    • 2020-04-16
    相关资源
    最近更新 更多