小编Kar*_*ill的帖子

在Laravel 5.7中更改验证电子邮件的默认"主题"字段

我正在尝试更改subjectLaravel 5.7附带的验证邮件中的默认字段.我如何以及在何处更改它?我自己和网上搜遍了整个地方.因为它是全新的我找不到答案.你能帮我吗?谢谢!

laravel laravel-mail laravel-5.7

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

Laravel 5.5和Vue.js刀片测试

我的刀片中有以下内容......

<div>
  <contact-form></contact-form>
</div>
Run Code Online (Sandbox Code Playgroud)

我想测试以确保Vue.js组件始终在我的测试中安装...

public function testRoute()
{
    $this->visit('/');
    //stuck here
}
Run Code Online (Sandbox Code Playgroud)

基本上我很期待测试刀片有<contact-form>.我该怎么办?

php laravel vue.js vuejs2

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

我应该在Laravel中嵌套通往资源的路线吗?

这可能有点主观,但我认为必须存在最佳实践(甚至在Laravel应用程序方面甚至是好的设计)。谷歌搜索导致很多事情与该问题的实际观点无关。


假设我正在构建一个具有团队的Web应用程序,该团队可能包含项目,可能包含文档。

我是否应该设计工艺路线,使文档位于其所属项目的路径之内,然后位于其所属团队的路径之内,还是将其保留在顶层?

据我所知,该频谱的两端值得讨论(其他选项只是中间的灰色):

套料

例如,可以在以下位置找到Doc C:/ teams / team-a / projects / project-b / documents / doc-c

这很容易做到,在路由文件中,我可以使用路由组来帮助保持结构整洁。我认为这对用户来说更合乎逻辑,并且也许更方便(他们可以自己制定URL!)。我担心的是我正在将复杂性导入每个页面请求中:

  • 在检查路由是否完整(即doc-c确实属于project-b)时,以及
  • 用户有权通过路径一直访问每个嵌套资产。

我是否应该在每个控制器方法的开头,对于每个路由参数都对每个资源进行门/策略检查?否则,在哪里可以抽象?

关于路由完整性,我从未见过为此进行测试的示例-那么这不是常见的方法吗?如果我们不验证路线的完整性,那么页面可能会通过修改路线来显示混合信息(例如,/ teams / team-a / projects / project-Z / documents / doc-c将在文档上显示有关项目Z的信息-c页面)。

没有嵌套

例如,可以在以下位置找到Doc C:/ documents / doc-c

在此示例中,每个资产都有其自己的基本路线,更像是我猜想的API。

不需要完整性检查,并且控制器将预先确定显示的其他资产以生成视图。

但是这个UX足够好吗?我见过的大多数网站都不这样做。

routes laravel laravel-routing laravel-5

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

如何使用 Laravel API 身份验证返回未经授权

我正在使用带有令牌的 Laravel API 身份验证。(如此处所述:https : //laravel.com/docs/5.8/api-authentication#protecting-routes

我正在用 Postman 运行一些测试,它运行良好。当我尝试在没有有效令牌的情况下访问路由时,我看到响应是我的应用程序登录页面的(html)。如何返回Unauthorized消息而不是完整的登录页面?我是否必须创建自定义中间件?

控制器

class ExampleController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth:api');
    }

    public function show(Request $request) {
        return response()->json($request->user()->name);
    }
 }
Run Code Online (Sandbox Code Playgroud)

api laravel

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

具有多个参数的 Laravel 模型事件

我目前已经实现了一个在创建模型时触发的事件:

protected $dispatchesEvents = [
    'created' => EvaluationRequestForZ0UQ0::class
];
Run Code Online (Sandbox Code Playgroud)

没什么特别的,工作正常。但我想使用多个参数调用模型创建事件。像这样的东西:

protected $dispatchesEvents = [
    'created' => event(new EvaluationRequestForZ0UQ0(User $param1, Job $param2))
];
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?也许我的做法是错误的。如果是这样,请随时告诉我另一种方法。

laravel laravel-5

6
推荐指数
0
解决办法
1853
查看次数

如何在 Laravel 中测试同时使用 `Storage::put()` 和 `Storage::temporaryUrl()` 的路由?

我在 Laravel 7 中有一个路由,它将文件保存到 S3 磁盘并返回一个临时 URL。简化后的代码如下所示:

Storage::disk('s3')->put('image.jpg', $file);
return Storage::disk('s3')->temporaryUrl('image.jpg');
Run Code Online (Sandbox Code Playgroud)

我想为该路线编写一个测试。对于 Laravel,这通常很简单。我使用 模拟存储并Storage::fake('s3')使用 断言文件创建Storage::disk('s3')->assertExists('image.jpg')

假的存储不支持Storage::temporaryUrl()。如果尝试使用该方法,则会抛出以下错误:

此驱动程序不支持创建临时 URL。

一个常见的解决方法是使用 Laravel 的低级模拟 API,如下所示:

Storage::shouldReceive('temporaryUrl')
  ->once()
  ->andReturn('http://examples.com/a-temporary-url');
Run Code Online (Sandbox Code Playgroud)

LaraCasts线程和关于.Storage::fake()

有什么方法可以结合这两种方法来测试一条同时实现这两种方法的路线吗?

我想避免重新实现Storage::fake()。另外,我想避免在生产代码中添加检查,以便Storage::temporaryUrl()在环境正在测试时不调用。后一个是上面已经提到的LaraCasts 线程中提出的另一项工作。

mocking laravel flysystem

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

具有“jsonpath”依赖项的 Webpack 捆绑包

在部署 lambda 之前,我们使用 webpack 来捆绑它们。自从我们添加了依赖于“jsonpath”的代码以来,代码立即失败,并显示以下内容。

TypeError:无法在 Object.28729 (/.../bundle.js:2) 的 Object.readFileSync (fs.js:346:16) 的 isFileType (fs.js:163:16) 处读取未定义的属性“1”: 4710658)

我对 Webpack 还很陌生,所以我不确定该去哪里。代码工作正常,但它没有捆绑。另外,我尝试过不同版本的 Webpack。有人可以建议如何解决这个问题吗?

bundle jsonpath webpack

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

在 Laravel 中使用 Sendmail 发送电子邮件的正确配置是什么?

我正在使用 Laravel 7,我想通过 Laravel Mail 门面使用 Sendemail 驱动程序发送电子邮件。当我使用 PHP 邮件功能时它有效,但我想使用 Laravel Mail 外观。

我的 .env 文件电子邮件配置:

MAIL_DRIVER=sendmail
MAIL_SENDMAIL='/usr/sbin/sendmail -t -i'
Run Code Online (Sandbox Code Playgroud)

我在 config/mail.php 中的默认邮件设置:

'default' => env('MAIL_MAILER', 'sendmail'),
'mailers' => [
    'smtp' => [
        'transport' => 'smtp',
        'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
        'port' => env('MAIL_PORT', 587),
        'encryption' => env('MAIL_ENCRYPTION', 'tls'),
        'username' => env('MAIL_USERNAME'),
        'password' => env('MAIL_PASSWORD'),
    ],
    'ses' => [
        'transport' => 'ses',
    ],
    'sendmail' => [
        'transport' => 'sendmail',
        'path' => '/usr/sbin/sendmail -bs',
    ],
    'log' => [
        'transport' => 'log',
        'channel' …
Run Code Online (Sandbox Code Playgroud)

php sendmail laravel laravel-mail laravel-7

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

Laravel 9 与 Vite,将 .css 和 .js 文件混合为一个?

如何处理将多个 .css 和 .js 文件混合到一个文件中(laravel mix迄今为止一直这样做)。

新的Laravel 9安装了Vite.js,并删除了laravel mix由于我们最常使用laravel mix的主要功能是将 /resource 文件夹中的文件混合到 /public 文件夹中(许多文件合并为一个)。你是如何处理这个问题的,或者你还在使用 laravel mix 和 Vite 吗?

php laravel vite laravel-9 laravel-vite

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

将自定义搜索字段添加到可数据对象

我需要将我在页面上创建的字段添加到Datatables对象.因此,即使它们不是典型的参数(顺序,搜索,分页等),它们也可以与其他Datatables对象状态一起保存和加载.

JavaScript的:

$(document).ready(function () {
    var table = $('#stackoverflow-datatable').DataTable({
        "processing": true,
        "stateSave": true,
        "stateSaveCallback": function (settings, data) {
            $.ajax({
                "url": "/api/save_state",
                "data": data,
                "dataType": "json",
                "success": function (response) {}
            });
        },
        "stateLoadCallback": function (settings) {
            var o;
            $.ajax({
                "url": "/api/load_state",
                "async": false,
                "dataType": "json",
                "success": function (json) {
                    o = json;
                }
            });

            return o;
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

然后我认为将JS添加到对象的JS ...

<script type="text/javascript">
    $.fn.dataTableExt.afnFiltering.push(
        function (settings, data) {
            var dateStart = parseDateValue($("#dateStart").val());
            var dateEnd = parseDateValue($("#dateEnd").val());
            var evalDate = parseDateValue(data[9]);

            return …
Run Code Online (Sandbox Code Playgroud)

javascript jquery datatables

5
推荐指数
1
解决办法
1188
查看次数