Laravel 5.5嵌套控制器和视图

时间:2018-02-04 18:21:46

标签: view nested laravel-5.5

我们说我有一个"联系人"实体,我已经建立了模型,控制器,视图。所有CRUD操作都有效。 现在我想为联系人添加地址。同一联系人可能有多个地址,但每个地址仅属于一个联系人。有关地址的任何CRUD操作都嵌套到联系人。

我已经建立了模型,到目前为止一直很好。我已手动填充数据库,我想实现嵌套到contacts.show的addresses.index。

地址控制器方法应该是这样的:

public function index($ContactId)
{
    $addresses = Addresses::where("contact_id",$ContactId)->paginate(10);
    return view('addresses.index',compact('addresses',"$ContactId"))
        ->with('i', (request()->input('page', 1) - 1) * 5);
}

现在我想构建视图,但我迷失了,因为我无法找到任何有用的示例或教程(或者它们是用于非常旧的版本)

1 个答案:

答案 0 :(得分:1)

我将地址完全嵌入用户,联系人,潜在客户,公司等,包括视图目录,因此users.address.index将成为视图路径。

访问地址的路由也是嵌套的。如果它只是一个只有用户有地址的简单项目,那么url将是'/ users / 1 / addresses`来列出他们的地址。列出地址的控制器方法通常如下所示:

class AddressController {
    public function index(Request $request, User $user) {
        return view('users.addresses.index', ['addresses' => $user->addresses]);
    }
}

资源路由使这一切变得简单,您只有两个路径文件条目,如下所示:

Route::resource('users', 'UserController');
Route::resource('users.addresses', 'AddressController');

如果我在一个可以有地址的应用程序中有多个模型,我会使Address多态并进一步抽象出上述控制器。

https://laravel.com/docs/5.5/eloquent-relationships#polymorphic-relations