相关疑难解决方法(0)

管理Laravel中的关系,遵守存储库模式

在阅读了T. Otwell关于Laravel优秀设计模式的书之后,在Laravel 4中创建应用程序时,我发现自己为应用程序中的每个表创建了存储库.

我最终得到了以下表格结构:

  • 学生:身份证,姓名
  • 课程:id,name,teacher_id
  • 老师:id,姓名
  • 作业:id,name,course_id
  • 分数(充当学生和作业之间的枢轴):student_id,assignment_id,分数

我有所有这些表的查找,创建,更新和删除方法的存储库类.每个存储库都有一个与数据库交互的Eloquent模型.根据Laravel的文档,模型中定义了关系:http://laravel.com/docs/eloquent#relationships .

在创建新课程时,我所做的就是在课程资源库中调用create方法.该课程有作业,因此在创建作业时,我还想在课程中为每个学生在乐谱表中创建一个条目.我是通过Assignment Repository完成的.这意味着赋值存储库使用Assignment和Student模型与两个Eloquent模型进行通信.

我的问题是:由于此应用程序的大小可能会增加并且会引入更多关系,因此在存储库中与不同的Eloquent模型进行通信是一种好的做法,还是应该使用其他存储库来完成(我的意思是从Assignment存储库调用其他存储库) )还是应该在Eloquent模型中一起完成?

此外,将分数表用作作业与学生之间的转轴还是应该在其他地方完成,这是一种好习惯吗?

oop repository-pattern laravel eloquent laravel-4

114
推荐指数
4
解决办法
3万
查看次数

Laravel 5.7:构建时目标不可实例化

我知道有很多答案,但我无法真正解决这个问题。

我确实按照这个答案(How to make a REST API First Web application in Laravel)在 Laravel 5.7 上创建存储库/网关模式

我在 github 上还有“项目”,如果有人真的想要 test/clone/see : https: //github.com/sineverba/domotic-panel/tree/development (开发分支)

应用\接口\Lan接口

<?php
/**
 * Interface for LAN models operation.
 */

namespace App\Interfaces;


interface LanInterface
{

    public function getAll();

}
Run Code Online (Sandbox Code Playgroud)

应用\提供商\服务提供商

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        /**
         * Solve the "Key too long" issue …
Run Code Online (Sandbox Code Playgroud)

php laravel

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

laravel ×2

eloquent ×1

laravel-4 ×1

oop ×1

php ×1

repository-pattern ×1