小编Dee*_*ens的帖子

如何在 PHP 中获取枚举的所有值?

PHP 8.1 即将发布,包括对枚举的支持。我正在测试一些枚举功能,但找不到太多有关它的文档。因此我的问题是:如何获取枚举的所有值?

php php-8.1

59
推荐指数
4
解决办法
5万
查看次数

为什么在Laravel 5.x中不推荐使用表单和HTML帮助程序?

为什么从Laravel 5开始不推荐使用Form和HTML帮助程序?我知道我可以使用像laravelcollective/html包这样的东西.但我只是想知道为什么Laravel停止使用/转移助手.

html php laravel laravel-5

41
推荐指数
2
解决办法
2万
查看次数

没有关于模型[App\Models\Match]的查询结果

我正在使用Laravel构建API,并希望使用Laravel Notifications系统发送推送通知.我有一个匹配模型(基本上是一个帖子),另一个用户可以喜欢这个匹配.当喜欢匹配时,帖子的创建者将获得推送通知.它就像Instagram,Facebook等.

推送通知通常不会发送给用户.我安装了Laravel Horizo​​n以查看是否存在错误.有时通知是发送的,有时则不是.使用完全相同的数据:

Laravel Horizo​​n列表

通知有时会使用完全相同的数据(相同的用户,相同的匹配)失败.

错误如下:

Illuminate\Database\Eloquent\ModelNotFoundException:/home/forge/owowgolf.com/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:312中的模型[App\Models\Match] 118没有查询结果

我确定匹配和用户存在于数据库中,我在发送通知之前已经验证过.有人知道出了什么问题吗?我在网上找到的一切都是人们在将通知发送到队列之前没有保存他们的模型.但是,如果模型不存在,则甚至无法到达代码将通知发送到队列中的行.由于路由/控制器中的隐式绑定.

控制器方法:

/**
 * Like a match.
 *
 * @param  \App\Models\Match  $match
 * @return \Illuminate\Http\JsonResponse
 */
public function show(Match $match)
{
    $match->like();

    $players = $match->players()->where('user_id', '!=', currentUser()->id)->get();

    foreach ($players as $user) {
        $user->notify(new NewLikeOnPost($match, currentUser()));
    }

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

通知:

<?php

namespace App\Notifications;

use App\Models\Match;
use App\Models\User;
use Illuminate\Bus\Queueable;
use NotificationChannels\Apn\ApnChannel;
use NotificationChannels\Apn\ApnMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;

class NewLikeOnPost extends Notification implements ShouldQueue
{
    use Queueable;

    /**
     * The match instance.
     * …
Run Code Online (Sandbox Code Playgroud)

php queue laravel laravel-5 laravel-horizon

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

Bcrypt vs Hash in laravel

我想创建一个函数或类似Cron的东西,它执行链接(在Laravel中),类似于密码.我有两个解决方案.但哪一个更好用:

选项1(哈希):

<?php

// Page 1

$salt = "my-random-hash";
$key = hash('sha256', date('Y-m-d').$salt);

// <-- Insert go to page and send GET with $key code here

// Page 2

$salt = "my-random-hash";
$key = hash('sha256', date('Y-m-d').$salt);

if ($key == $pageOneKey) {
    // Execute some code
}
Run Code Online (Sandbox Code Playgroud)

选项2(bcrypt):

<?php

// Page 1

$key = Crypt::encrypt(date('Y-m-d'));

// <-- Insert go to page and send GET with $key code here

// Page 2

$key = date('Y-m-d');
$pageOneKey = Crypt::decrypt($key);

if ($key == $pageOneKey) …
Run Code Online (Sandbox Code Playgroud)

php hash bcrypt laravel

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

使用长短名称在 Android 中搜索应用

对于 Android 应用程序,我希望能够通过 Google Play 商店名称和应用程序名称本身在您的手机中搜索该应用程序。一个例子是 WhatsApp Messenger。在 Play 商店中,应用程序的名称是WhatsApp Messenger,但如果安装了应用程序,则名称显示为WhatsApp。然而,一旦你搜索手机上的应用程序它显示的结果都WhatsAppMessenger

在 Play 商店中:
在此处输入图片说明

如果您在手机上搜索WhatsAppMessenger
在此处输入图片说明 —— 在此处输入图片说明

我已将应用上传到 Play 商店和 Play 商店{company name} {app name}以及我设置app_name{app name}. 但是如果我{company name}在手机上搜索它,它不会显示在结果中。

我在 Android 文档中找不到关于此的任何内容?Android 是否也使用 Play 商店中的名称进行搜索,如果是,为什么它不适用于我的应用?

android google-play

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

只有邮寄物品可以排队

我必须从 5.1 更新到 5.4

这是带有`5.1的邮件代码

Mail::queue('emails.welcome_client', compact('user', 'userPassword'), function ($message) use ($user, $adminEmails) {
    $message->subject('Welcome to Enterprise Solutions!');

    $message->from(env('MAIL_FROM_ADDRESS'), env('MAIL_FROM_NAME'));
    $message->to($user->email);
    foreach($adminEmails as $adminEmail) {
        $message->bcc($adminEmail);
    }
});
Run Code Online (Sandbox Code Playgroud)

我必须从 Laravel 5.1 更改为 5.4 所以我创建对象邮件

这里是

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class ClientMail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public $user;
    // protected $content;

    public function __construct($user)
    {
        $this->content = $user;
    }

    /** …
Run Code Online (Sandbox Code Playgroud)

laravel-5 laravel-5.1 laravel-5.4

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

您可以在不需要登录 Auth0 的情况下使用通用 MFA 设置嵌入式注册吗?

我试图弄清楚在 Auth0 中注册后设置多因素身份验证的一些事情,但我似乎无法弄清楚或在文档中找到任何关于它的信息。

我在 Vue.js 中有一个嵌入式注册表单,用户可以在被邀请到平台后注册一个帐户。我正在尝试尽可能多地使用 Auth0 的通用页面。我选择使用嵌入式注册表是因为用户只能通过邀请进行注册,而且我们需要用户提供大量额外数据(超过 10 个我们可以在 Auth0 中使用的字段)。

用户填写详细信息后,将通过我们的 API/数据库和 Auth0 创建一个帐户。完成后,用户需要设置 2-FA,最好在 Auth0 的通用页面中,但与我们应用程序的设计(已经实现)。

我们将用户重定向到 Auth0 流,但随后用户需要先登录。首先注册(填写电子邮件和密码),然后在单击注册按钮以设置 MFA 后立即重新登录的流程感觉有点奇怪。我在文档中找不到关于此的任何内容,但也许我完全错过了它。

javascript vue.js auth0

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

在Laravel中删除带通配符的文件

有没有办法允许您在Laravel 5.2中删除带通配符的文件.

例如:

File::delete('foo/bar.*');
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5

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

Laravel:函数 Illuminate\Support\Manager::createDriver() 的参数太少

我尝试使用 mailtrap 和 Laravel 5.4 测试电子邮件。我收到此错误:

类型错误:函数 Illuminate\Support\Manager::createDriver() 的参数太少,0 传入 C:\Users***\Documents\www\***\backend\vendor\laravel\framework\src\Illuminate\ Support\Manager.php 第 88 行,正好是 1 行

我已经尝试过了config:cacheconfig:clear等等。

这是php artisan tinker我回显时返回的内容env('MAIL_DRIVER')

邮件传输协议

这是我的 .env 文件

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io 
MAIL_PORT=2525 
MAIL_USERNAME=*********
MAIL_PASSWORD=*********
MAIL_ENCRYPTION=null
Run Code Online (Sandbox Code Playgroud)

这是我的邮件功能:

Mail::send('email.verify', compact('validation_code'), function($message) {
    $message->to(Input::get('email'), Input::get('username'))
        ->subject('Verify your email address');
});
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?

多谢 :)

php laravel

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

生产FB应用程序受限制的问题,但是复制的FB应用程序可以正常工作

最近,Facebook开始审查我们的应用程序,但由于我们的应用程序违反了平台政策,因此受到了限制。我们的Android和iOS应用程序均存在错误。我们已经修复了该错误,但没有将更新推送到Play商店和App Store。在Facebook通知我们有关限制的信息后,我们将更新推送到生产环境中,并请求重新上诉。但是,由于Android应用仍然存在错误,因此上诉被拒绝。

我找不到错误,并且由于该应用程序受到限制,我们无法真正对其进行测试。如果我们使用Facebook登录,则会收到来自Facebook的错误消息,告知我们我们的应用程序受到限制:

受限制的应用消息

为了调试Facebook登录过程,我创建了一个新的Facebook应用,并将所有设置从受限制的FB应用复制到新的“调试”应用。更改API密钥并进行一些测试后,即使在FB App设置中将应用程序状态设置为生产时,一切似乎都可以正常工作。

因此,我们知道FB正在向Android应用发送一些错误代码。我创建了一个小更新,其中应用程序将显示FB发送的消息中的一部分。我们提出了新的呼吁。不幸的是,应用程序的吸引力再次下降。这次向我们发送带有错误消息的打印屏幕:

Facebook Android SDK错误

信息不多,但是,这是从Android FB SDK返回的错误消息。我试图在Google和Facebook文档上搜索错误消息。我发现的唯一内容是此Stack Overflow帖子。它与测试用户有关,但是我们的应用程序正在生产中,因此我们必须在生产中添加测试用户。

我对如何做或尝试一无所知。我尝试通过电子邮件发送给FB,他们回答说,基本上是说我应该尝试对Stack Overflow提出问题。这显然是我现在正在做的事情。是否每个人都遇到过此类问题,或者我将如何在生产中对此进行测试?

编辑

捕获错误的代码。该LoginManager是从com.facebook.login.LoginManager

loginActivity = myActivityParent as LoginActivity
facebookCallbackManager = CallbackManager.Factory.create()

LoginManager.getInstance().registerCallback(facebookCallbackManager, object : FacebookCallback<LoginResult> {
    override fun onSuccess(result: LoginResult?) {
        Log.d("FACEBOOK", "Successful login.")
        loginPresenter!!.onSuccessfulFacebookLogin(result)
    }

    override fun onCancel() {
        Log.d("FACEBOOK", "Facebook login was cancelled!")
        enableViews()
    }

    override fun onError(error: FacebookException?) {
        val errorMessage = error!!.message.toString()

        displayErrorBoxTimed(errorMessage, myActivityParent, length = 5000)

        Log.d("FACEBOOK", "Something went wrong while logging in with facebook!")

        enableViews()
    }
})
Run Code Online (Sandbox Code Playgroud)

java android facebook

5
推荐指数
0
解决办法
565
查看次数

Laravel在自定义路由文件上路由缓存

我正在Laravel 5.2中建立一个项目,它有一个很大的(很多行很大)routes.php.为了使眼睛的路线更清洁,我将所有路线组分开介绍分开的文件.在app\Http\Routes\.

我要求所有文件中的所有文件RouteServiceProvider(更正:工作..)对我来说完全没问题.毕竟,我想用缓存路由php artisan route:cache.然后,如果你去了一个页面,你得到的是404错误.

"漫长"的故事简短:新的路线逻辑在工匠路线缓存后崩溃.

这是我的地图功能RouteServiceProvider(灵感来自这个答案):

public function map(Router $router)
{
    $router->group(['namespace' => $this->namespace], function ($router) {
        // Dynamically include all files in the routes directory
        foreach (new \DirectoryIterator(app_path('Http/Routes')) as $file)
        {
            if (!$file->isDot() && !$file->isDir() && $file->getFilename() != '.gitignore')
            {
                require_once app_path('Http/Routes').DS.$file->getFilename();
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

有人知道问题是什么吗?或者,如果我想使用路由缓存,我只需要将所有内容放回routes.php中.提前致谢.

php caching laravel laravel-routing laravel-5

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

从Laravel 5.2升级到5.3后的隐式路由绑定问题

我只是通过Shift将Laravel项目从5.2升级到5.3 。手动合并文件后,Shift无法合并,我打开了一个标签,然后转到我的项目。路由模型绑定似乎无法正常工作。

我用的是易拉包。

Route::get('team/{team}', function (App\Models\Team $team) {
    dd($team);
});
Run Code Online (Sandbox Code Playgroud)

但是,当我将上面的代码与段符或id一起使用时,我只会得到一个新的模型实例,而不是关联的模型。即使我从模型中删除了易怒的特征,并在路线中使用了ID。当我使用不存在的ID时,不会显示404页面。

我不确定导致错误的原因,有什么想法吗?干杯。

php laravel laravel-5.3

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

Laravel 5为foreach()提供的参数无效

我正在尝试在我foreach()的一个控制器内部进行操作,而我遇到的错误Invalid argument supplied for foreach()就是我的代码

$subAdmins = $request->input('subAdmin');

  // Adding subAdmin
  foreach($subAdmins as $subAdmin){
    $linksubAdmin = new LayMinisterEvents;
    $linksubAdmin->user_id = $subAdmin;
    $linksubAdmin->event_id = $recordEvent->id;
    $linksubAdmin->save();
 }
Run Code Online (Sandbox Code Playgroud)

这是发送的数据 'subAdmins' => '5,6'

at HandleExceptions->handleError(2, 'Invalid argument supplied for 
foreach()', '/home/vagrant/www/project-
api/app/Http/Controllers/EventsController.php', 47, array('request' => 
object(Request), 'response' => object(Response), 'authUser' => 1, 
'recordEvent' => object(Events), 'linkadminLeader' => 
object(AdminEvent), 'subAdmins' => '5,6'))
in EventsController.php (line 47)
Run Code Online (Sandbox Code Playgroud)

php foreach laravel laravel-5

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