我正在使用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);
}
這是錯的?我應該只在我的控制器中分頁嗎?
一個很好的解釋會幫助我很多。