簡體   English   中英

在將變量從控制器傳遞到視圖時,在Laravel 5中獲取未定義的變量

[英]Getting undefined variable in Laravel 5 when passing variable from controller to view

我無法將我的控制器變量$ sickLeaves傳遞給我的視圖,這是通過我的SickLeaveController(它是一個RESTful資源控制器)的index.blade.php來實現的。 我一直收到錯誤:未定義的變量'sickLeaves'

這是routes.php:

Route::group(['middleware' => 'web'], function(){
    Route::auth();
    Route::get('/', 'HomeController@index');
    Route::get('auth/logout', 'Auth\AuthController@getLogout');
    Route::get('/home', 'HomeController@index');
    Route::resource('sickleaves','SickLeaveController');
});

這是我的SickLeaveController:

class SickLeaveController extends Controller
{

public function index()
{

    $sickLeaves = SickLeave::all();

    return view('sickleaves.index')->with('sickleaves',$sickLeaves);
}


public function create()
{
    $users = User::pluck('name','id');

    return View::make('sickleaves.create')->with('sickleaves',$users);
}


public function store(Request $request)
{
    $this->validate($request, [
        'firstname' => 'required|max:255',
        'lastname' => 'required|max:255',
        'reason' => 'required|max:255',
        'startdate' => 'required',
        'status' => 'required',]);
}


public function show($id)
{
    $sickLeave = SickLeave::find($id);

    return View::make('sickleaves.show')->with('sickleaves',$sickLeave);
}


public function edit($id)
{
    $sickLeave = SickLeave::findOrFail($id);

    return View::make('sickleaves.edit')->with('sickleaves',$sickLeave);
}


public function update(Request $request, $id)
{
    //TODO
}


public function destroy($id)
{
    $sickLeave = SickLeave::findOrFail($id);
    $sickLeave->delete();

    Session::flash('Item successfully deleted');
    return redirect()->route('sickleave.index');
}
}

這是index.blade.php:

@foreach($sickLeaves as $sickLeave)
                <tr>
                    <td style="width: 8%">{{ $sickLeave->id }}</td>
                    <td style="width: 12%"><span class="fw-semi-bold">{{ $sickLeave->firstname }}</span></td>
                    <td style="width: 12%"><span class="fw-semi-bold">{{ $sickLeave->surname }}</span></td>
                    <td class="no-sort hidden-xs" style="width: 12%">{{ $sickLeave->reason }}</td>
                    <td class="hidden-xs">{{ $sickLeave->startdate }}</td>
                    <td class="hidden-xs">{{ $sickLeave->enddate }}</td>
                    <td class="no-sort">{{ $sickLeave->status }}</td>
                    <td class="no-sort"><div class="btn-group">
                            <button class="btn btn-inverse">Actions</button>
                            <button class="btn btn-inverse dropdown-toggle" data-toggle="dropdown">
                                <i class="fa fa-caret-down"></i>
                            </button>
                            <ul class="dropdown-menu">
                                <li><a href="{{ route('sickleaves.show', $sickLeave->id) }}">View Details</a></li>
                                <li><a href="{{ route('sickleaves.edit', $sickLeave->id) }}">Edit</a></li>
                                <li class="divider"></li>
                                <li><a href="#">Delete</a></li>
                            </ul>
                        </div>
                    </td>
                </tr>
                @endforeach

使用正確的變量:

@foreach($sickleaves as $sickLeave)

此外,如果您使用的是5.2.27或更高版本,請刪除web中間件。

PHP變量區分大小寫!

你通過了sickleaves ,但在視野中你正試圖sickLeaves ,這就是問題所在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM