我收到客户遇到的许多错误的报告
Symfony的\分量\调试\异常\ FatalErrorException
最大执行时间超过30秒
我,我自己,无法在我的本地机器上或生产服务器上复制它.这个网址遍布整个网站,因此,我猜它是全球性的,就像一个造成这种情况的中间件.
我使用Sentry.io来收集数据,但异常跟踪只有1个条目指向Symfony基本代码中的某个代码,最常见的是:
第73行的vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php
第45行的vendor/symfony/finder/Iterator/DateRangeFilterIterator.php
第69行的vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php
显然,似乎存在与文件系统相关的东西,但由于没有跟踪,我无法看到在站点代码中查找错误的位置.我猜它是某种无限循环或泄漏,但没有任何痕迹可以看,并没有一致的方法来重现问题.
我应该如何寻找问题并进行调试?
我可以设置任何设置,还是可以使用/启用的工具?
是否可以动态设置模型的关系?例如,我有 model Page,我想在banners()不实际更改其文件的情况下为其添加关系?那么是否存在这样的事情:
Page::createRelationship('banners', function(){
$this->hasMany('banners');
});
Run Code Online (Sandbox Code Playgroud)
或者类似的东西?因为无论如何它们都是使用魔法方法获取的,也许我可以动态添加关系?
谢谢!
我有 2 个存储库驻留在 Bitbucket - 后端(Laravel 应用程序作为 API 和入口点)和前端(主应用程序前端 - VueJs 应用程序)。我的目标是设置持续部署,因此每当在 master(或我选择的其他分支)分支中的任何一个 repos 中推送某些内容时,它都会触发某些内容,以便整个应用程序构建并到达 AWS EC2 服务器。
我已经考虑/尝试了以下内容:
我的主要问题是部署此类组件的应用程序的最佳做法是什么?我已经阅读了许多关于部署 NodeJS 应用程序或 Laravel 应用程序的教程/文章,但还没有获得有关此类场景的良好信息。
在本地构建前端应用并对构建的 JS 文件进行版本控制会更好吗?或者我应该在 Bitbucket 中创建一个管道来构建应用程序然后部署它?或者最好只进行版本控制和部署源文件,并将整个构建过程作为部署过程的最后一步,由托管应用程序本身的服务器完成?还有一些文章建议在 S3 存储桶中托管整个前端应用程序 - 这也是不好的做法吗?
感谢任何有帮助的帮助和资源!
我正在开发一个 API 服务,我开发的另一个网站将使用该服务。因此,在本地构建和测试时,显然我希望该站点的两个本地副本都能工作。然而,它似乎混淆了environment变量。
例如:
Site A有APP_URL=http://a.local Site B有APP_URL=http://b.localGET请求(使用Guzzle)到Site Ahttp://b.local/test/test点Site B只是转储出来dump(env('APP_URL'))Site A是"http://a.local""http://b.local"因此,中的代码Site B正在使用从 加载的环境变量运行Site A。这是一个问题,因为Site B无法访问正确的数据库,它正在尝试使用 的Site A数据库。
这是我的本地设置(Win10 + WAMP)、PHP 设置、Laravel 设置的问题吗?
我可以以某种方式在组件模板内确定数据范围吗?
例如,如果我有以下代码:
data() {
a: {test: 'Test A'},
b: {test: 'Test B'}
}
Run Code Online (Sandbox Code Playgroud)
目前在模板中我必须做
<div class="a">{{ a.test }}</div>
<div class="b">{{ b.test }}</div>
Run Code Online (Sandbox Code Playgroud)
有什么方法可以确定每个元素的数据范围吗?例如,类似:
<div :scope="a">{{ test }}</div><!-- This prints 'Test A' -->
<div :scope="b">{{ test }}</div><!-- This prints 'Test B' -->
Run Code Online (Sandbox Code Playgroud)
我确实知道我可以将每个项目提取到一个组件中,但是,我想知道是否有办法在同一模板中做到这一点?由于它没有自己的逻辑等,所以我不想将其提取到单独的组件中以限定变量的范围。但是,多次重复相同的变量名称可能会很乏味。
例如,我有一个用于创建新项目的表单,其中有许多输入。我将它们保存在一个变量下(例如)newItem,看起来像
newItem: {
input1: "",
input2: "",
input3: null,
input4: false,
// etc...
}
Run Code Online (Sandbox Code Playgroud)
在模板中我想做
<div :scope="newItem">
<input v-model="input1"/>
<!-- etc.. --->
</div>
Run Code Online (Sandbox Code Playgroud)
代替
<input v-model="newItem.input1"/>
<!--- etc... --->
Run Code Online (Sandbox Code Playgroud) 我正在尝试生成一个 URL,其他系统可以使用该 URL 将文件上传到我的 S3 存储桶。我查看了文档和类似问题,但是,我找不到正确的解决方案。
我已经尝试以多种方式创建 PreSigned URL($this->s3是 S3Client 的参考):
1:
$signedUrl = $this->s3->getCommand(
'PutObject',
array(
'Bucket' => $this->bucket,
'Key' => 'recording_test.mp3',
'Body' => ''
)
)->createPresignedUrl('+2 hours');
Run Code Online (Sandbox Code Playgroud)
2:
$command = $this->s3->getCommand('PutObject', array('Bucket' => $this->bucket, 'Key' => 'recording_test3.mp3', 'Body' => ''));
$request = $command->prepare();
$signedUrl = $this->s3->createPresignedUrl($request, '+2 hours');
Run Code Online (Sandbox Code Playgroud)
当试图简单地访问 URL 时,我收到以下错误:
The request signature we calculated does not match the signature you provided. Check your key and signing method.
Run Code Online (Sandbox Code Playgroud)
我也试过这样: $key = 'recording_test2.mp3'; $url = $this->bucket.'/'.$key; …
我的输入名称如下:
<input name="settings[custom_plan.breakpoint1]"/>
我如何检索old它的输入?由于点符号适用于输入数组,但不适用于实际名称。所以old('settings[custom_plan.breakpoint1]')不起作用,也不起作用old('settings.custom_plan\.breakpoint1')(转义点在验证符号中起作用)。
如何检索输入的旧值?
谢谢!
我正在尝试编写一个命令作为构建项目的快速入门.该命令要求输入数据库详细信息,然后更改.env文件.问题是该命令之后需要进行一些数据库查询,但不会重新加载.env变量.
我的问题是,有没有办法重新加载或覆盖.env变量运行时.如果没有,有没有办法新鲜地召唤另一个Artisan命令,那么框架再次引导?
在我的命令中,我尝试$this->call('build:project')用我的实际命令,但即使在第二次调用中,变量也不会重新加载.
有没有办法在不让用户手动调用多个命令的情况下实现这一目的?
谢谢!
所以我有一个Page模型,它扩展了Eloquent Model类。我正在尝试重写构造函数,其中我需要一些额外的逻辑。这就是我目前所拥有的:
class Page extends Model
{
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
$this->main_image = null;
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我打电话时,这似乎没有将 保存到属性main_image中。$this->attributesPage::find(1);
我相信这是因为Page::find最终会调用Model::newFromBuilder,如下所示:
public function newFromBuilder($attributes = [], $connection = null)
{
$model = $this->newInstance([], true);
$model->setRawAttributes((array) $attributes, true);
$model->setConnection($connection ?: $this->getConnectionName());
return $model;
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它首先创建实例,然后设置属性,这意味着构造函数中设置的任何内容都会被忽略。
是否有任何解决方法可以重写构造函数(或类似方法)来更改每个检索/创建的模型实例的属性?显然我可以重写newFromBuilder、newInstance和__construct类似的方法,但这看起来非常老套且难以维护。
谢谢!
我正在使用方向 apix使用Google Maps API. 我的电话是这样的:
https://maps.googleapis.com/maps/api/directions/json?key=MY_KEY&origin=Exeter%2C+UK&destination=London®ion=uk&waypoints=optimize:true|52.80443%2C1.3974969999999303|51.33700547604255%2C-2.5970759440972415|50.430475%2C-4.305309999999963
它返回的结果似乎没问题(所有驾驶说明)。但是,它还会返回一个概览折线,我想在我的网站上显示该折线。但是每当我对其进行解码时(无论是在我的网站上还是使用他们的Polyline Utility),它都会显示一些奇怪的线条,这些线条似乎不太符合路线(它有正确的起点,但没有显示路线,在有些点它在直线上移动得很远)。例如:
这是我为上述请求获得的路线的折线。正如你所看到的,它有很多线在水面上航行......
在我的网站中,我像这样显示多边形(但在他们的折线工具中,我得到了相同的行):
var decodedPath = google.maps.geometry.encoding.decodePath("<?=$response->routes[0]->overview_polyline->points?>");
var poly = new google.maps.Polyline({
path: decodedPath,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 3,
map: map
});
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如何获得正确的折线以显示实际路线的轮廓?
谢谢!