小编Dan*_*old的帖子

属性存在但property_exists()返回false;

好吧,我真的很困惑.当我检查属性是否存在时,它返回false.

if (property_exists($pais, 'id'))
// false
Run Code Online (Sandbox Code Playgroud)

但是当我调试它时,它就会显示出来.

print_r($pais->id);
// 1
print_r(property_exists($pais, 'id'));
// false
Run Code Online (Sandbox Code Playgroud)

我疯了还是我的神经元只是炒?

并且pais的创建是由

if (key_exists('country', $data))
    $pais = Pais::adicionarPais($data);

(...) 

public static function adicionarPais(array $data)
{
    return Pais::firstOrCreate(['nome' => $data['country']]);
}
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 php-7 laravel-5.4

8
推荐指数
2
解决办法
1966
查看次数

PostgreSQL 插入后触发写入另一个表

我正在尝试为 pgsql 编写一个触发器来保留特定表上的插入、更新和删除的日志。

我在创建触发器时在位置 171 上收到错误,但我真的不知道为什么。

日志表

+----------+-----------+---------------------------+
|table_name|column_name|data_type                  |
+----------+-----------+---------------------------+
|logs      |id         |bigint                     |
|logs      |action     |smallint                   |
|logs      |table      |character varying          |
|logs      |primary    |bigint                     |
|logs      |log        |json                       |
|logs      |processed  |boolean                    |
|logs      |created_at |timestamp without time zone|
|logs      |updated_at |timestamp without time zone|
+----------+-----------+---------------------------+
Run Code Online (Sandbox Code Playgroud)

功能和触发

CREATE OR REPLACE FUNCTION insert_log (INT, VARCHAR, INT, VARCHAR) RETURNS INT AS $$
    BEGIN
        INSERT INTO public.logs ("action", "table", "primary", "log")
            VALUES ($1, $2, $3, $4)
            RETURNING id;
    END
$$ …
Run Code Online (Sandbox Code Playgroud)

sql postgresql triggers sql-insert postgresql-11

-1
推荐指数
1
解决办法
3504
查看次数