小编Kim*_*nce的帖子

为什么我不能在 Laravel Dusk 中使用 body 类选择器?

我正在使用 Laravel 5.5 和 Dusk 2.0。我有以下 html。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<body class="my-body-class" id="my-body-div">
    <div class="my-content-class" id="my-content-div">
        Content goes here.
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的黄昏测试。

public function testBasicExample()
{
    $this->browse(function (Browser $browser) {
        $browser->visit('/test/admin-fixed-layout');
        $this->assertNotNull($browser->element('.my-content-class'));
        $this->assertNotNull($browser->element('#my-content-div'));
        // $this->assertNotNull($browser->element('.my-body-class'));
        $this->assertNotNull($browser->element('#my-body-div'));
    });
}
Run Code Online (Sandbox Code Playgroud)

如果我取消注释使用主体类选择器的断言,则测试失败。为什么?

laravel laravel-5 laravel-dusk laravel-5.5 laravel-dusk2

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

Laravel:如何使用盖有多个守卫的盖茨

我有一个传统的Web应用程序,它有许多不同的用户类型,每个用户类型都有自己的身份验证防护.

'guards' => [

    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'admin' => [
        'driver' => 'session',
        'provider' => 'admin',
    ],
    'timekeeper' => [
        'driver' => 'session',
        'provider' => 'timekeeper',
    ],
    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],
],
Run Code Online (Sandbox Code Playgroud)

我的大多数用户使用"网络"防护进行身份验证,但是管理员和计时员都使用自己的防护,后者附加到适当的用户提供商.

这很好,直到我尝试使用身份验证门.如果我针对系统的默认防护(例如"web")对用户进行身份验证,那么门将按预期工作.但是,如果我对任何其他警卫进行身份验证,那么所有Gate::allows(...)呼叫都会被拒绝.

甚至以下能力也被拒绝:

Gate::define('read', function ($user) {
    return true;
});
Run Code Online (Sandbox Code Playgroud)

大概这是由于Illuminate\Auth\Access\Gate中的第284-286行:

if (! $user = $this->resolveUser()) {
    return false;
}
Run Code Online (Sandbox Code Playgroud)

据我所知,我的选择是:

  • 回到使用单个"web"防护,使用可以找到任何类型用户的用户提供程序(但我不确定如果我开始并行使用API​​将会如何工作)
  • 以某种方式在运行时设置默认保护,具体取决于当前用户的类型.(目前在配置文件中设置)
  • 以某种方式将不同的用户解析器注入Gate门面(同样,取决于当前用户的类型)

然而,这些似乎都不直观.我错过了什么吗?

laravel laravel-5

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

在急切加载时别名 Eloquent 关系

有没有办法在急切加载时为 Eloquent 关系设置别名?例如,我可能有如下查询。

User::with(['roles' => function ($query) { $query->where('type', ADMIN); }]);
Run Code Online (Sandbox Code Playgroud)

但是,如果我还想急切加载状态为 ACTIVE 的角色怎么办?我能想到的唯一方法是复制 User 模型上的角色关系并给它一个不同的名称。查询将类似于以下内容。

User::with([
  'roles' => function ($query) { $query->where('type', ADMIN); },
  'otherRoles' => function ($query) { $query->where('status', ACTIVE) }]
);
Run Code Online (Sandbox Code Playgroud)

我可以在我的用户模型上使用诸如adminRoles和 之类的方法activeRoles,但这真的不是我想要的,因为有很多可能的参数。

laravel eloquent

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

Neo4j:如何查找给定节点标签的所有属性名称

在 Neo4j 中,有没有办法获取给定节点标签的所有属性的名称。有很多文章解释了如何为给定节点执行此操作,但我需要获取属于给定标签的所有节点的所有属性名称。

neo4j cypher neo4j-apoc

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

简单的jQuery .change问​​题

我是jQuery的新手,并且很难获得.change事件来调用命名函数.当我使用匿名函数时,它工作正常.

这很好用:

$(function() {

    $("select").change(function() {
        alert("hello");
    }); 
});
Run Code Online (Sandbox Code Playgroud)

这不起作用(即没有效果):

$(function() {
    $("select").change(processSelection());
    function processSelection() {alert('Hello!');}; 
});
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢!

javascript jquery

0
推荐指数
1
解决办法
52
查看次数

ZF2:如何将安全图像作为网页的一部分提供服务

我已经构建了一个包含用户个人资料的 ZF2 应用程序,现在我希望允许用户上传并显示他们的照片作为其个人资料的一部分。就像您在 LinkedIn 中看到的那样。

上传照片似乎很容易(使用Zend\InputFilter\FileInput())。我的那个工作得很好。

在我看来,将它们存储在网络根目录之外很有意义。(例如,我不需要担心用户在目录上使用 wget )。但是如何将这些图像嵌入到网页中呢?

如果它们位于网络根目录内,我会简单地执行此操作<img width="140" src="/img/filename.jpg">,但显然,如果它们位于安全位置,则这是不可能的。解决办法是什么?

php image-processing zend-framework2

0
推荐指数
1
解决办法
608
查看次数

是否存在将数据类型组合在Redis中的操作?

我刚刚完成了这个Redis教程,https: //redis.io/topics/twitter-clone .如果我理解正确的话,它的本质是,要查看用户的帖子,PHP(或其他客户端)必须为List用户有资格查看的帖子调用Redis ,然后必须循环执行List,制作一个单独调用Redis以检索每个帖子(存储为a Hash).

在所有条件相同的情况下,如果客户可以向Redis拨打一个电话会更好,Redis可以将帖子列表与相关的哈希结合起来并仅返回符合条件的帖子.这可能吗?如果没有,Redis有可能替代吗?

redis

0
推荐指数
1
解决办法
59
查看次数