我在文档中偶然发现了这个https://laravel.com/docs/5.4/configuration#configuration-caching,这让我有点困惑.
当我想要一个环境变量时,我使用env()函数返回我想要的东西.根据上面的链接,它说我应该使用config()函数来确保在生产时我通过缓存访问值.
例如,这些都返回相同的东西
env('APP_URL')
VS
config('app.url')
我应该在我的应用程序中使用config()还是env()内部?
我假设如果我添加一个新的env变量,我还需要更新我的配置文件?
我是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
我有两个模型资源,我想合并到一个平面数组中,而不必显式定义其他资源的所有属性。
模型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,我希望能够使它成为平面数组,而不是在其中一个属性中具有数组。
将这两种资源合并成一个平面结构的简单方法是什么?
我刚刚写了一个 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)
我如何处理需要用户登录才能进行旧测试的新观察者?我必须去改变所有旧的测试吗?
我的工作是从数据库中分块数据,然后将 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使用率,有没有一种简单的方法可以调试这个问题?
我正在使用 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?
我已经尝试查看我的模型继承的类,但无法找到定义处理它的常量和函数的位置。我怀疑它可能在收藏中,但没有运气。
理想情况下,我想简单地重新定义模型中的函数。
谢谢。
laravel ×5
php ×5
laravel-5 ×2
axios ×1
eloquent ×1
javascript ×1
mysql ×1
supervisord ×1
vuejs2 ×1