小编Mar*_*ult的帖子

Laravel:强制下载字符串而无需创建文件

我正在生成一个CSV,我希望Laravel强制下载,但是文档只提到我可以下载已经存在于服务器上的文件,我想这样做而不将数据保存为文件.

我设法做了这个(有效),但我想知道是否有另一种更整洁的方式.

    $headers = [
        'Content-type'        => 'text/csv',
        'Content-Disposition' => 'attachment; filename="download.csv"',
    ];
    return \Response::make($content, 200, $headers);
Run Code Online (Sandbox Code Playgroud)

我也尝试使用SplTempFileObject(),但是我收到以下错误:The file "php://temp" does not exist

    $tmpFile = new \SplTempFileObject();
    $tmpFile->fwrite($content);

    return response()->download($tmpFile);
Run Code Online (Sandbox Code Playgroud)

laravel

24
推荐指数
2
解决办法
9633
查看次数

使用PHP7时,是否需要使用PHPDoc记录方法?

在PHP7中,当方法设置给定的参数类型和结果类型时,是否有必要在PHPDoc中再次记录它们?

以来

function foo(string $text): bool
{
    return true;
}
Run Code Online (Sandbox Code Playgroud)

相当于

/**
 * @param string $text
 * @return bool
 */
function foo($text) {
    return true;
}
Run Code Online (Sandbox Code Playgroud)

是否有必要复制这些信息?

/**
 * @param string $text
 * @return bool
 */
function foo(string $text): bool
{
    return true;
}
Run Code Online (Sandbox Code Playgroud)

编辑:我不使用PHPDoc生成我的代码文档,而是在PHPStorm的帮助下为我和我的同事保持方法的一致性.

php phpdoc php-7

16
推荐指数
1
解决办法
3104
查看次数

Angular Universal 生成 404(和其他 HTTP 代码)标头

我正在使用 Angular Universal 创建一个网站。它将进行服务器端渲染,以便搜索引擎可以对其进行索引。

我已经编码了 404 后备路由,它正确显示了其组件,但它显示了 HTTP 200 标头代码。

如何强制使用特定的标头代码?我用谷歌搜索了一些查询,但我发现的所有内容似乎都是关于读取HTTP 调用的状态代码,而没有关于如何将其写入浏览器的内容。

seo angular-universal angular

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

Angular 5:允许在路径中使用尾随斜杠

我正在使用Angular更新一个旧网站,我必须满足的一个要求是所有路由都应该保持原样(出于搜索引擎优化的目的).

很多老网站的路线完成以斜杠(像/my/route/),其中一些完成了.html,像/my/route.html.

问题是routerLink删除了每个路由中的最后一个斜线(斜线是我的路线/my/route).

如何routerLink保持尾随斜线?

这里可以看到一个很好的例子:AngularTrailingSlash.

routing angular angular5

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

使用libiconv时iconv将重音符号与字母分开

我正在尝试制作一个函数,该函数将返回不带重音的给定字符串,但是iconv的//TRANSLIT选项似乎只将重音和字母分开,而没有去除重音。

这是我的功能:

<?php
function strRemoveAccents($str)
{
    return iconv(mb_detect_encoding($str), 'us-ascii//TRANSLIT', $str);
}
Run Code Online (Sandbox Code Playgroud)

这是我的结果:

  • 测试1

    • 输入:雅典
    • 预期产量:雅典娜
    • 电流输出:Ath`enes
  • 测试2

    • 输入:Gda?sk
    • 预期产量:格但斯克
    • 电流输出:格达斯克
  • 测试3

    • 输入:niño
    • 预期产量:nino
    • 电流输出:ni〜no

一些精度:

  • mb_detect_encoding 对于我的所有测试,返回“ UTF-8”,并且用返回值替换该函数不会更改任何内容。
  • 我的语言环境当前设置为 LC_COLLATE=C;LC_CTYPE=French_France.1252;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=C
  • 我也尝试将语言环境更改为en_US.UTF-8(我检查过:语言环境已成功更新),但是函数的返回值仍然相同
  • 在Macbook上使用默认语言环境设置测试c/fr_FR.UTF-8/c/c/c/c的问题仍然相同。
  • 我可以删除重音符号,但是由于我将在整个句子中使用该方法,因此我不想删除多余的撇号。
  • 编辑:使用此沙箱进行测试时,我得到了想要的结果。

我可能会丢失一些东西,但我看不到。

编辑:正如@jasonwubz在回答中提到的那样,仅在使用libinconv时出现问题,而在使用glibc时不存在。使用这些实现中的任何一种时,是否有办法使其工作?

php character-encoding iconv

5
推荐指数
2
解决办法
120
查看次数

Angular Tour of Heroes:inMemory Web API的问题

我正在关注着名的Angular教程,英雄之旅,但我正在努力迈出一步.

第六个课程HTTP上,我们使用了一个模仿API调用API的工具.

我想我已经遵循了所有步骤,到目前为止,它已经说明了以下内容:

刷新浏览器.英雄数据应该从模拟服务器成功加载.

但我可能错过了一些东西:http调用都给出了错误的http 500标题Object(...) is not a function.

我错过了创建路线的一些方法吗?我觉得inMemory wep API似乎不需要路由,这似乎很奇怪.

我的测试代码可以在这里找到:https://github.com/MarcBrillault/tourOfHeroes/tree/StackOverflow

in-memory-database angular-cli angular

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

laravel-backpack的重新排序列是什么?

官方文档中,提到了以下列:

  • PARENT_ID
  • LFT
  • RGT
  • 深度

我没有在文档中找到他们的类型的任何解释.有人可以帮我,告诉我他们是什么?

如果我只想重新排序项目列表(我不需要任何嵌套),我也想知道它们是否都是强制性的.

backpack-for-laravel

3
推荐指数
1
解决办法
1011
查看次数