【问题标题】:Creating a url structure like current-route/edit/{id} in laravel 5在 laravel 5 中创建类似 current-route/edit/{id} 的 url 结构
【发布时间】:2016-07-14 12:16:30
【问题描述】:

我对 Laravel 非常陌生。在学习过程中,我遇到了一种情况,我将在下面描述:

我有一个页面包含 /manage-clients 路由中的数据网格。对于网格,我使用数据表。我为每条记录添加了编辑按钮。现在,我想制作编辑屏幕,这基本上是一个新视图。我希望编辑的 url 结构是 /manage-clients/edit/{id}。如何通过以下设置实现这一点?

下面是我的控制器:

    public function getIndex()
        {
            return View('admin.manageclients');
        }
        public function anyData()
        {
            $clients    = DB::table('users')
                        ->select(['id', 'first_name', 'last_name', 'email', 'created_at', 'updated_at'])
                        ->where('type', '=', '');
            return Datatables::of($clients)->addColumn('action', function ($clients) {
                    return '<a href="edit-client/'.$clients->id.'" class="btn btn-xs btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a>';
                })->editColumn('id', 'ID: {{$id}}')->make(true);
        }
        public function editClient($id)
        {
//This is my edit function which is going to load the details of provided $id into view.
            return $id;
        }

我的路线是:

Route::group (array('prefix' => 'admin', 'middleware' => 'auth'), function()
{
    Route::get('dashboard',['as'=>'getDashboard', 'uses'=>'Admin\AdminController@getDashBoard']);
    Route::controller('manage-admins', 'Admin\ManageAdminController', ['anyData'  => 'manage-admins.data','getIndex' => 'manage-admins']);
    Route::controller('manage-clients', 'Admin\ManageClientController', ['anyData'  => 'manage-clients.data', 'getIndex' => 'manage-clients']);
});

【问题讨论】:

    标签: php laravel laravel-5.2 laravel-routing


    【解决方案1】:

    你的意思是这样的吗?

    Route::group (array('prefix' => 'admin', 'middleware' => 'auth'), function()
    {
        Route::get('dashboard',['as'=>'getDashboard', 'uses'=>'Admin\AdminController@getDashBoard']);
        Route::controller('manage-admins', 'Admin\ManageAdminController', ['anyData'  => 'manage-admins.data','getIndex' => 'manage-admins']);
        Route::controller('manage-clients', 'Admin\ManageClientController', ['anyData'  => 'manage-clients.data', 'getIndex' => 'manage-clients']);
        Route::get('manage-clients/edit/{id}', 'ManageAdminController@editClient');//I have added this code 
    });
    

    请注意,id 将在控制器内自动提供给您

    【讨论】:

    • 差不多。但我有控制器方法未找到错误。注意:由于我的控制器位于 Controllers/Admin 目录下,因此将代码更正为以下。 Route::get('manage-clients/edit/{id}', 'Admin\ManageClientController@editClient');
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2012-02-15
    • 1970-01-01
    相关资源
    最近更新 更多