我正在使用Repository Pattern
(我对这种模式很新)的Laravel 5.4
项目中工作。我有一个红色的很多关于这个在网络上,但我仍然有两个重要的问题:Laravel存储库模式说明
>问题1:
想象一下我使用Laravel ORM Eloquent
和我有类似如下的界面:
<?php
namespace App\Repositories\User;
interface UserRepoInterface
{
/**
* @param array $user
*/
public function update(array $request, User $user);
}
您可以看到我已经指定了一个类似参数的雄辩User
模型。
的雄辩实施看起来是这样的:
public function update(array $request, User $user)
{
$user->name = $request['name'];
$user->last_name = $request['last_name'];
$user->email = $request['email'];
$toUpdate->save();
}
所以我的问题:
这是错误的硬编码在我的界面雄辩User
模式?在网上的很多例子中,我看到有人在做这个,但是如果我想用基于文件的实现来交换雄辩的实现呢?这是一个问题,因为我必须将User
模型传递给更新方法!
如果我只申报$user
而不是User $user
,这个问题的解决办法是什么?
>问题2:
我应该如何处理分页?
举例来说,在我的雄辩UserRepository
我有看起来像这样的方法:
public function index()
{
return User::orderBy('name', 'asc')
->withCount('messages')
->with('corporation')
->paginate(10);
}
这是错的?我应该只在我的控制器中分页吗?
一个很好的解释会帮助我很多。