php - Laravel 5.3 View 之间传递数据

标签 php laravel model-view-controller view laravel-5.3

我有一个名为drivers.blade.php的页面,其中仅显示数据库中的几个字段 我有一个view-more-link,点击后用户应该转到driver-details

我在其中显示驱动程序的所有详细信息,例如产品和产品详细信息页面

我的drivers.blade.php

@foreach($drivers as $driver)

<div class="col s12 m6 l3">
<div class="card small card-driver">
    <div class="card-image">
        <img src="assets/images/profile-image-2.png" alt="">
    </div>
    <div class="card-content">
        <div class="card-details">
            <p>Name:</p><span>{{ $driver->first_name }} &nbsp; {{ $driver->last_name }}</span>
        </div>
        <div class="card-details">
            <p>Phone:</p><span>{{ $driver->phone_number }}</span>
        </div>
        <div class="card-details">
            <p>Address:</p>
            <span>
                {{ $driver->address_city_village }} &nbsp; {{ $driver->address_state }}
            </span>
        </div>
    </div>
    <div class="card-action">
        <a href="driver-details" class="waves-effect waves-light btn green">View Details</a> //onclick go to that perticular driver details by passinf id
    </div>
</div>
</div>

@endforeach

我的 Controller 是DriverController.php

public function getDrivers() 
{
    $drivers = Driver::all();

    return view('drivers', compact('drivers'));
}

public function getDriverDetails($id) 
{
    $driver = Driver::find($id);

    if(! $driver) {
        return $this->respondNotFound();
    }

    return view('drivers-details', compact('driver'));

}

如果我转到http://localhost:8000/driver-details页面,我会收到以下错误

Sorry, the page you are looking for could not be found.
NotFoundHttpException in RouteCollection.php line 161:

我的路线是

Route::resource('drivers', 'DriversController@getDrivers');
Route::resource('drivers-details', 'DriversController@getDriverDetails');

期待急需的帮助

谢谢

最佳答案

Route::resource仅适用于 CRUD。如果您没有使用[index, create, store, show, edit, update, destroy]方法那么你不应该使用 Route::resource相反,还有许多其他方式,例如 Route::get , Route::post

这是因为你正在使用--

Route::get('drivers-details', 'DriversController@getDriverDetails');

并请求http://localhost:8000/driver-details如果您访问http://localhost:8000/drivers-details,则它未在路线内注册您不会收到错误。

在您的 Controller 中,getDriverDetails($id) ,您给出了一个参数,要使用它,您需要将其注册到您的路由中才能像这样使用它 -

Route::get('drivers-details/{id}', 'DriversController@getDriverDetails');

您还需要将 id 发送到 url Norder 才能访问它 --

<a href="/drivers-details/{{ $driver->id }}" class="waves-effect waves-light btn green">View Details</a>

关于php - Laravel 5.3 View 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41650281/

相关文章:

php - Twitter API 响应并不总是按预期返回实体媒体

php - 如何在php中以某种格式显示数字

c++ - 模型更新量大的场景如何处理UI无响应

objective-c - 正确使用 NSURLConnection

php - 不在对象上下文中时使用 $this 时出错

php - 在php html中显示从mysql到dropdownbox的具体信息。

php - 填充和类 col-md 不起作用

mysql - 删除唯一的索引列

mysql - Laravel Eloquent 按日期分组,也返回空/零行

c# - MVC 视频流式传输到移动网络浏览器