小编Gru*_*ruz的帖子

Laravel Web和API控制器结构.与DRY分开

我想构建一个Laravel应用程序,它同时使用Web和API部件.常见的(也是我的)问题是是否使用单独的控制器.

有两种选择:

  1. 单独的控制器 Laravel API控制器结构?

  2. 使用一个控制器并检查请求类型(是Ajax,还是取决于请求链接)并返回JSON或HTML. 用于API和非API使用的Laravel资源控制器

那些拥有第一意见的人没有解释DRY问题解决方案 - 除了return语句(JSON或HTML视图)之外,web和API控制器是相同的.但由于大多数帖子建议分开控制器,我怀疑我对DRY问题解决方案一无所知.

我没有看到第二种方法的任何缺点.但是人们会这么说

如果你只使用一个控制器,你很快就会得到一个包含数千行的混乱类.不仅这不能很好地扩展,而且对你和你的队友来说也很难.

请解释第一种方法的干燥问题解决方案(单独的控制器)和第二种方法中可能存在的水下岩石(单一控制器)

请解释哪种方法更可取.

laravel

8
推荐指数
1
解决办法
1354
查看次数

如何在 Laravel 中监听 Postgres 监听/通知?

我的总体任务

我需要监听通过诸如 DBeaver 之类的数据库管理器完成的 Postgres 表更改(CRUD),并将更新的行 id 传递给 laravel 驱动的 API enpoint。

我拥有的

Postgres部分

在 Postgres 中,我创建了一个表、表的触发器以及在 postgres 端处理事件的函数

CREATE TABLE PUBLIC.TBLEXAMPLE
(
  KEY1 CHARACTER VARYING(10) NOT NULL,
  KEY2 CHARACTER VARYING(14) NOT NULL,
   VALUE1 CHARACTER VARYING(20),
  VALUE2 CHARACTER VARYING(20) NOT NULL,
   CONSTRAINT TBLEXAMPLE_PKEY PRIMARY KEY (KEY1, KEY2)
);

CREATE OR REPLACE FUNCTION PUBLIC.NOTIFY() RETURNS trigger AS
$BODY$
BEGIN
  PERFORM pg_notify('myevent', row_to_json(NEW)::text);
  RETURN new;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE COST 100;


CREATE TRIGGER TBLEXAMPLE_AFTER
AFTER insert or update or delete 
ON …
Run Code Online (Sandbox Code Playgroud)

postgresql queue worker supervisord laravel

6
推荐指数
1
解决办法
2412
查看次数

Laravel - 如何使Laravel关系中的一个属性变为可见?

我在我的模型代码中使用以获得关系

class User extends Authenticatable
{
...
    public function extensions()
    {
        return $this->belongsToMany(Extension::class, 'v_extension_users', 'user_uuid', 'extension_uuid');
    }
...
}
Run Code Online (Sandbox Code Playgroud)

扩展名具有现场密码隐藏.

class Extension extends Model
{
...
    protected $hidden = [
        'password',
    ];
...
}
Run Code Online (Sandbox Code Playgroud)

在某些情况下,我想makeVisible密码字段.

我怎样才能做到这一点?

laravel

4
推荐指数
2
解决办法
5017
查看次数

标签 统计

laravel ×3

postgresql ×1

queue ×1

supervisord ×1

worker ×1