我试图在Laravel中添加自定义代表(合同和Eloquent) 我不明白在哪里添加它们以及如何与服务绑定。 任何正文都可以在Laravel中显示添加自己的wn存储库类和接口的最佳示例吗?
提前致谢
答案 0 :(得分:2)
在你的控制器中注入CustomRepository Class.Like -
class CustomController扩展Controller {
private $ customRepo;
public function __construct(CustomRepository $customRepo)
{
$this->customRepo= $customRepo;
}
}
答案 1 :(得分:1)
我喜欢构建我的Laravel代码的方式是:
模特 - App\Models\*
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model as BaseModel;
class Model extends BaseModel
{
//
}
合同 - App\Repositories\Contracts\*
<?php
namespace App\Repositories\Contracts;
interface Repository
{
// All the common methods for eloquent like - all, paginate, find, where, etc...
}
存储库 - App\Repositories\Db\*
<?php
namespace App\Repositories\Db;
class ExampleRepository
{
// All the CRUD related methods here...
}
服务 - App\Services\*
<?php
namespace App\Services;
class ExampleService
{
// All the logic & business related methods here...
}
这就是我喜欢用laravel方式构建代码的方法。
希望这有帮助!
答案 2 :(得分:0)
对于存储库模式的使用(如果它是你想要说的),你有两个选项,一个是在自定义的命名空间下实现(比如App\Repositories
),一个接口使用您想要在所有存储库中使用的方法,可能是AbstractRepository
或类似的东西,这一个选择是痛苦的,因为您必须编写大量代码,另一个选择(我将使用的是),是安装以下包https://github.com/andersao/l5-repository,非常有用,并且已经有很多方法,只需按照自述文件的说明操作,你就不会有任何问题实现这个模式,希望它有所帮助,最好! ;)