小编hdi*_*fen的帖子

我应该在配置文件外使用env()吗?

我在文档中偶然发现了这个https://laravel.com/docs/5.4/configuration#configuration-caching,这让我有点困惑.

当我想要一个环境变量时,我使用env()函数返回我想要的东西.根据上面的链接,它说我应该使用config()函数来确保在生产时我通过缓存访问值.

例如,这些都返回相同的东西

env('APP_URL')

VS

config('app.url')

我应该在我的应用程序中使用config()还是env()内部?

我假设如果我添加一个新的env变量,我还需要更新我的配置文件?

php laravel

7
推荐指数
1
解决办法
781
查看次数

在axios响应中处理数据

我是axios的新手。

过去,当我发出http请求时,我习惯于找回对象的一个​​数组/数组,这使我可以通过使用map和reduce这样的函数轻松地对数据进行格式化。然后,我将其呈现给DOM。

我注意到在返回的响应中是一个观察者对象。我将如何提出请求,以便给我返回数组?处理此观察者对象的标准是什么?

getSomething (myId) {
    return axios.get('/api/getSomething', {params: {'id': myId}})
                .then(response => console.log(response.data))
                .catch((promise) => this.handleError(promise));
}
Run Code Online (Sandbox Code Playgroud)

谢谢

编辑:更新的代码。为了澄清,当我调用getSomething()response.data时,它是一个对象,即使我将其作为数组在后端发送。我假设axios正在将此数组更改为对象。该对象具有许多额外的属性,例如__ob__get 0

javascript axios vuejs2

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

将Laravel资源合并为一个

我有两个模型资源,我想合并到一个平面数组中,而不必显式定义其他资源的所有属性。

模型1:

id
name
created_at
Run Code Online (Sandbox Code Playgroud)

模型2:

id
alternate_name
child_name
parent_name
sibling_name
created_at
Run Code Online (Sandbox Code Playgroud)

Model1资源

public function toArray($request)
{
    return [
        id => $this->id,
        name => $this->name,
    ]
}
Run Code Online (Sandbox Code Playgroud)

模型2资源

public function toArray($request)
{
    return [
        alternate_name => $this->alternate_name, 
        child_name => $this->child_name, 
        parent_name => $this->parent_name, 
        sibling_name => $this->sibling_name
    ]
}
Run Code Online (Sandbox Code Playgroud)

我希望Model1Resource在平面结构中包含Model2Resource。通过在资源中添加另一个属性,我可以轻松地在子数组中获得Model 2资源:

Model2 => new Model2Resource($this->model2);
Run Code Online (Sandbox Code Playgroud)

但这不是平面结构。理想情况下,我希望返回这样的结构。

[id, name, alternate_name, child_name, parent_name, sibling_name]
Run Code Online (Sandbox Code Playgroud)

我可以通过在Model1Resource中重新定义Model2Resource的所有属性来做到这一点,但这似乎是不必要的。

为了澄清起见,我指的是https://laravel.com/docs/5.5/eloquent-resources#writing-resources。在“关系”部分下,one to many使用演示了一种关系posts。但是,如果结构为one to oneI,我希望能够使它成为平面数组,而不是在其中一个属性中具有数组。

将这两种资源合并成一个平面结构的简单方法是什么?

php laravel

6
推荐指数
2
解决办法
1845
查看次数

如何防止 Laravel 在测试中触发事件?

我刚刚写了一个 laravel Observer。它附加到一个Company模型,因为我想了解创建公司的用户。我还有一大套其他测试,它们使用工厂来设立公司。这些测试现在失败了,因为观察者需要用户,但调用工厂时没有用户登录。

公司观察者.php

class CompanyObserver {
    function created(Company $company) {
        info('USER ' . Auth::user()->id . ' created the new company ' . $company->id . '.';
    }
}
Run Code Online (Sandbox Code Playgroud)

旧测试.php

Class OldTests {
    function testSomething() {
        // Now fails because observer is triggered but no use is logged in.
        $company = factory(Company::class)->create();

        // Random request
        $this->post('getCompany/' . $company->id)->assertStatus(200);
    }
}
Run Code Online (Sandbox Code Playgroud)

我如何处理需要用户登录才能进行旧测试的新观察者?我必须去改变所有旧的测试吗?

php laravel eloquent laravel-5

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

如何优化 Laravel Worker 的高 CPU 使用率?

我的工作是从数据库中分块数据,然后将 10000 到 20000 封电子邮件排队。

我只运行了两个进程,但在我们处理所有这些电子邮件期间,我们的 CPU 使用率飙升至 50% 左右。当我们没有工作时,我们的 CPU 使用率为 0%

主管配置文件

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/user/www/production/artisan queue:work database --queue=high,default,low --sleep=3 --tries=3
user=user
autostart=true
autorestart=true
redirect_stderr=true
numprocs=2
Run Code Online (Sandbox Code Playgroud)

我看过其他一些讨论这个问题的帖子,但大多数都在处理旧版本 Laravel 的问题。

我怎样才能减少CPU使用率,有没有一种简单的方法可以调试这个问题?

php supervisord laravel laravel-5

5
推荐指数
0
解决办法
820
查看次数

覆盖模型的软删除表列

我正在使用 Laravel 5.4。

我有一个模型指向具有以下属性的数据库表。

id       integer
name     varchar
location varchar
deleted  boolean
Run Code Online (Sandbox Code Playgroud)

这是一张旧表,由于它与一堆代码纠缠在一起,我们无法更改此表。

我想要做的是利用模型中的 laravel 软删除功能。我知道 laravel 期望列名deleted_at和数据类型date在数据库表上。

我如何覆盖它以便 Laravel 会查看该列deleted并检查它是否为boolean?

我已经尝试查看我的模型继承的类,但无法找到定义处理它的常量和函数的位置。我怀疑它可能在收藏中,但没有运气。

理想情况下,我想简单地重新定义模型中的函数。

谢谢。

php mysql laravel

4
推荐指数
1
解决办法
1767
查看次数

标签 统计

laravel ×5

php ×5

laravel-5 ×2

axios ×1

eloquent ×1

javascript ×1

mysql ×1

supervisord ×1

vuejs2 ×1