小编Sum*_*per的帖子

Laravel控制器依赖注入

我正在尝试在Laravel中进行依赖注入,以使我的控制器和模型尽可能保持苗条.目标是使存储库处理归因于某些模型的数据的获取.

为此我试图从文档效仿这里和受欢迎的Laravel样板这里

但我不明白它的$user来源.

所以看看样板文件我们有两个文件:

ProfileController 这里

摘录如下:

use App\Repositories\Frontend\Access\User\UserRepository;
/**
 * Class ProfileController.
 */
class ProfileController extends Controller
{
    /**
     * @var UserRepository
     */
    protected $user;
    /**
     * ProfileController constructor.
     *
     * @param UserRepository $user
     */
    public function __construct(UserRepository $user)
    {
        $this->user = $user;
    }
Run Code Online (Sandbox Code Playgroud)

这看起来很像文档中提到的依赖注入,这是:

class UserController extends Controller {

     /**
         * The user repository instance.
         */
        protected $users;

        /**
         * Create a new controller instance.
         *
         * @param  UserRepository  $users
         * @return …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5

11
推荐指数
2
解决办法
9307
查看次数

Laravel通知事件监听器未定义属性

我有以下错误:

未定义的属性:Illuminate\Notifications\Events\NotificationSent :: $ user in /var/www/app/app/Listeners/NoticationListener.php:31

这里发生错误:

<?php

namespace App\Listeners;

use Illuminate\Notifications\Events\NotificationSent;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;

class NoticationListener implements ShouldQueue
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  NotificationSent  $event
     * @return void
     */
    public function handle(NotificationSent $event)
    {
       $notification = $event->notifiable;
       $addressee = $notification; //error here
       $address = $notification; 
       $type = "Notification";
       dispatch(new SendEmail($type,$addressee,$address));
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白这个未定义的属性,特别是在这一行上.我怎么dd()能从这里来?我试图记录$event …

php laravel laravel-5 laravel-5.3

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

在放大之后使用平移的位置元素

我正在实现一个基于Croppie的图像裁剪工具.我的问题是当我缩小太远时,图像离开视口或离裁剪区域太远.

所以我有一个函数,在线(下面的代码片段)363就像这样:

function _updateCenterPoint() { //borked
  console.log("fire _updateCenterPoint()");
  var self = this,
    transform = Transform.parse(self.childElements.img.style[CSS_TRANSFORM]);
  var imgRect = self.childElements.img.getBoundingClientRect(),
    cropRect = self.childElements.enclosedCrop.getBoundingClientRect();
  if (!isContainedByCrop(imgRect, cropRect, transform)) {
    console.log("adjust center");
    transform.x = //do a transform (I've tried many - see below)
    transform.y = //do a transform (I've tried many - see below);
  }
  var newCss = {};
  newCss['transform'] = transform.toString();
  css(self.childElements.img, newCss);

}
Run Code Online (Sandbox Code Playgroud)

在元素缩小太远之后定位元素由if (!isContainedByCrop(imgRect, cropRect, transform))条件中的逻辑处理,其中"adjust center"记录了.

我已经尝试了很多方法来做到这一点.我尝试使用距离公式,但感到困惑,因为我正在比较翻译的值而不是(x,y)点.基本上,一旦它收缩到一定量以下,它应该适合裁剪工具.

但是,我无法让它始终如一.当我将其缩小到150 x 150像素时,它有时会在裁剪工具中居中,有时则不会.

扩展会增加复杂性(对我而言).如果你没有缩放它,它将是一个简单的等式,只是通过.enclosedCrop's …

javascript math

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

Laravel ShouldQueue它是如何工作的

我知道如何使用ShouldQueue我的问题是为什么它的工作方式.

我需要编辑我new Job在数据库中的存储方式,因此正在挖掘Laravel的内部结构.

我要编辑的作业是从以下事件侦听器启动的:

<?php

namespace App\Listeners;

use App\Events\NewMail;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\Jobs\SendEmail;
use Carbon\Carbon;
class NewMailListener implements ShouldQueue
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  NewMail  $event
     * @return void
     */
    public function handle(NewMail $event)
    {
       $addressee = $event->user->name;
       $address = $event->user->email;
       $type = "NewMail";
       $job = (new SendEmail($type,$addressee,$address))->delay(Carbon::now()->addMinutes(10));
       dispatch($job);
    } 
}
Run Code Online (Sandbox Code Playgroud)

我不明白的是ShouldQueue …

php laravel

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

Laravel 5 Seeder 类不存在

我有一个全新的 Laravel 安装。我已经从一个 Laravel 项目的 github 存储库中移动了代码,相同版本 (5.3)。

一切正常,除了由于某种原因数据库种子不会运行。

例如,我可以在新的 Laravel 安装中从 github 加载的迁移中进行迁移,就像我在首先将迁移推送到 github 的服务器上一样。

但是我做不到php artisan db:seed,这意味着我漂亮的小数据库是空的!>:(

我得到:ReflectionException 类不存在

我尝试过的:

  1. php artisan optimize
  2. php artisan clear:cache
  3. composer clearcache
  4. composer dump-autoload

这些都没有解决我的问题。中的所有内容都DatabaseSeeder拼写正确,并且类确实存在,它们在我的另一台服务器上运行良好,而且,由于 Github,这个全新安装现在拥有与我的原始服务器相同的所有文件。

DatabaseSeeder.php:

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $this->call(UserTableSeeder::class);
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑 - 堆栈跟踪:

2017-06-14 19:11:00] local.ERROR: ReflectionException: Class UserTablesSeeder does not exist in /var/www/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:749 …
Run Code Online (Sandbox Code Playgroud)

php composer-php laravel-5

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

检查工作表中是否存在任何列表对象

如果我循环浏览我的工作表并想测试给定工作表中是否存在任何 ListObjects,我该怎么做?我试过这个:

Dim daysoftheweek As Worksheet
For Each daysoftheweek In Sheets
If Not daysoftheweek.ListObjects Is Nothing Then
'Do Something Here - Only If The Sheet Contains A List Object
End If
Next
Run Code Online (Sandbox Code Playgroud)

但即使工作表不包含 ListObject,IF 条件块仍会运行。

excel vba

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

Angular Bootstrap 工具提示动态内容

我正在使用Angular Bootstrap在 Angular 中制作购物车应用程序。

将鼠标悬停在购物车图标上时,应该会出现一个工具提示。工具提示的内容应根据商品是否已在购物车中而变化。

所以,这是 html:

<h3><i class="fa fa-shopping-basket" ng-click="add2Cart(item.Name)" tooltip-placement="right" uib-tooltip-html="itemtooltiptext(item.Name)" aria-hidden="true"></i></h3>

基本上,为了检查该商品是否已在购物车中,我希望从函数中解析工具提示文本。我从文档中了解到,只要 HTML 是可信的,就支持这一点。

它说,

uib-tooltip-html$ - 采用计算结果为 HTML 字符串的表达式。请注意,此 HTML 未编译。如果需要编译,请改用 uib-tooltip-template 属性选项。用户有责任确保内容可以安全地放入 DOM!

所以我的itemtooltiptext()功能是...

  $scope.itemtooltiptext = function(name) {
  if (localStorage.getItem("cart") === null) {
    return $sce.trustAsHtml("Add " + name + " to Cart!");
  } else {
    var cart = JSON.parse(localStorage.getItem("cart"));
    for (var i = 0; i < cart.length; i++) {
      if (cart[i] == name) {
        console.log("already in cart");
        return $sce.trustAsHtml(name + "already …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angular-ui-bootstrap

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

Laravel 5(.7)组织具有多重关系的模型/集合

我有以下Eloquent查询,大量使用模型上的关系,它的工作原理.

这里是:

$trip = ModelLocale::where("lang",$lang)
                    ->where("slug",$slug)
                    ->where('mainmodel_id',$id)
                    ->with(['mainmodel' => function ($query) use ($id)
                    {
                        $query
                            ->where('id', $id)
                            ->with(['convertedPrices' => function ($nestedQuery) use($id)
                            {
                                $nestedQuery
                                    ->where('model_id', $id)
                                    ->where('currency', Function::getCurrency());
                            }])
                            ->with(['othermodel','othermodel2', /** */, 'othermodel5']);
                    }])
                    ->first();
Run Code Online (Sandbox Code Playgroud)

无论如何,这是有效的,只是一个例子.

我的问题是我得到了很多嵌套关系,当它进入视图时它有点混乱.

我有我团队的另一名成员,我们提出此查询的雄辩关系或具体方式可能会发生变化,但视图或多或少总是需要相同的数据.因此,我想组织/清理此查询并将其标准化,然后再将其传递给我的视图.

这有意义吗?

我理解Eloquent的每一个回报都是这个例子 - Collection.

但是我在处理各种方法时遇到了一些问题,因为当dd()我收藏时,我看到了很多属性和嵌套.

在保持各种关系模型的完整性的同时,操作这个大集合的推荐方法是什么?例如,此查询将返回ModelLocale顶部,然后是一个关系属性(我不需要的其他属性 - 比如perPagewasRecentlyCreated)与另一个模型,然后是第二个模型上的更多嵌套关系.我想结合前两个模型,只有一个父母的关系.

所以,例如,当dd我得到:

-Model 1:
--Many properties
--Relations:
---Model 2
----Many properties
----Relations:
-----Model 3
-----Model 4
-----etc
Run Code Online (Sandbox Code Playgroud)

当我在视野中时,有一种简单的方法,而不是......

$model->model_relationship->model_relationship->atrribute
Run Code Online (Sandbox Code Playgroud)

...我可以重组这些并将两个第一个模型合并?或者重命名并映射关系和属性,同时忽略无关的属性,并为视图创建一个非常简单的属性数组? …

php laravel laravel-5

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

React JS Context API-窗口滚动事件

考虑到React 16的Context API,我已经看了两个可能过时的答案。

他们是:

React.js关于侦听组件窗口事件的最佳实践

和:

如何在React中实现类似于service(AngularJS中的concept)的组件

我对React 还是很陌生,所以我想知道,鉴于Context API,这是在React中进行Angular.js类型服务的正确方法(因此我没有window.addEventListener("scroll")在每个组件上监听滚动事件) ,以利用Context API(在此处创建事件侦听器?),只是想知道我是否在这里正确无误...

它讨论了能够传递道具,还涉及了嵌套组件能够改变状态,让包装器组件收集滚动位置,更新Context(滚动位置)并将其传递给需要的元素?有没有推荐的方法来做到这一点,window.addEventListener("scroll")甚至有很多问题吗?

创建嵌套组件后,我很难理解如何从其更新上下文-在此处的文档中:https : //reactjs.org/docs/context.html#updating-context-from-a-nested-component

因此,我不确定要从顶级/父元素更新上下文并将其传递给内部组件。

javascript reactjs

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

Moment.JS 获取给定日期之前的星期日

我正在修改 Angular 的 UI Bootstrap Datepicker 以允许一周选择模式。为了使其有效工作,我需要将 设定activeDate为给定一周的第一个星期日,因此,如果您选择一个日期,例如星期一(例如 8/29/2016),它会将您的选择转换为较早的星期日,即 8/ 28/16。

这就是选择函数的样子。else if如果有兴趣在警报匹配的块中转换为周日逻辑。

$scope.select = function(date) {
    if ($scope.datepickerMode === self.minMode) {
      var dt = ngModelCtrl.$viewValue ? dateParser.fromTimezone(new Date(ngModelCtrl.$viewValue), ngModelOptions.timezone) : new Date(0, 0, 0, 0, 0, 0, 0);
      dt.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
      dt = dateParser.toTimezone(dt, ngModelOptions.timezone);
      ngModelCtrl.$setViewValue(dt);
      ngModelCtrl.$render();
    } 

    else if($scope.datepickerMode =="week")
      {
        alert("Match!");
        self.activeDate = date.firstSundayofthatweek() //what do I actually put here using Moment.js?
       setMode(self.modes[self.modes.indexOf($scope.datepickerMode) - 1]);
      $scope.$emit('uib:datepicker.mode');
      }

    else {
      self.activeDate = date;
      setMode(self.modes[self.modes.indexOf($scope.datepickerMode) …
Run Code Online (Sandbox Code Playgroud)

javascript

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

Laravel $ request-&gt; expectsJson()

我正在为Laravel应用程序进行Ajax登录。

我正在使用Angular:

$http({
  method: 'POST',
  url: '/admin/login',
  headers: {
        'Content-Type': 'application/json'
  },
  data: {email:$scope.email,password:$scope.password}
})
Run Code Online (Sandbox Code Playgroud)

这个请求工作正常,我的问题是Laravel的响应总是重定向我,如果我不发送JSON,它应该重定向

protected function sendFailedLoginResponse(Request $request)
    {
        $errors = [$this->username() => trans('auth.failed')];
        if ($request->expectsJson()) {
            return response()->json($errors, 422);
        }
        return redirect()->back()
            ->withInput($request->only($this->username(), 'remember'))
            ->withErrors($errors);
    }
Run Code Online (Sandbox Code Playgroud)

那就是Laravel框架代码。它使我一直重定向,但我想触发条件if ($request->expectsJson())并获取JSON响应而不是重定向。

为了触发该条件,我缺少什么?

我什至补充说:

 headers: {
        'Content-Type': 'application/json','X-Requested-With' :'XMLHttpRequest'
  }
Run Code Online (Sandbox Code Playgroud)

而且仍然无法正常工作。

ExpectsJson()

public function expectsJson()
    {
        return ($this->ajax() && ! $this->pjax()) || $this->wantsJson();
    }
Run Code Online (Sandbox Code Playgroud)

我的标题:

接受:application / json,text / plain,/

Accept-Encoding:gzip,放气

接受语言:en-US,en; q = …

json laravel angularjs laravel-5 laravel-5.4

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

Laravel 通知监听器在实现队列时没用

Laravel 版本:5.5.*

PHP 版本:7.1.*

根据文档https://laravel.com/docs/5.5/notifications订阅通知事件应该非常简单。我已经按照文档中的步骤操作,但是我的通知实现了ShouldQueue并且它们没有正确填充事件侦听器。我想知道问题是否出在框架代码中

请注意,在 github 框架(链接在上方)中,它new Events\NotificationSent($notifiable, $notification, $channel, $response)仅从sendToNotifiable函数中触发,而后者又仅从sendNow函数中触发。该send函数本身,是这样的:

public function send($notifiables, $notification)
    {
        $notifiables = $this->formatNotifiables($notifiables);

        if ($notification instanceof ShouldQueue) {
            return $this->queueNotification($notifiables, $notification);
        }

        return $this->sendNow($notifiables, $notification);
    }
Run Code Online (Sandbox Code Playgroud)

也就是说,它读取对我来说,事件不会火,如果它是的情况下,if ($notification instanceof ShouldQueue) {作为queueNotification从来没有触发事件侦听器。我假设它进入队列,然后需要重新触发事件,但我认为这不会发生,因为我的NotificationSent侦听器没有填充来自该类构造函数的任何数据。

事件服务提供者:

 protected $listen = [
       'Illuminate\Notifications\Events\NotificationSent' => [
        'App\Listeners\NewNotificationListener',
    ],
Run Code Online (Sandbox Code Playgroud)

新通知监听器:

<?php

namespace App\Listeners;

use Illuminate\Notifications\Events\NotificationSent;
use Illuminate\Queue\InteractsWithQueue; …
Run Code Online (Sandbox Code Playgroud)

events laravel laravel-5.5

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

React Change Image Source on Scroll Event

As a newcomer to React but someone familiar with JavaScript, I am having some trouble knowing where exactly to put certain pieces of functionality in a given React component, and am not sure if this particular issue I am having is an issue with my React logic or just a lag-time when loading an image, although if it is the latter I do not understand this because I preload the image in a hidden div.

My expected workflow is the …

javascript css reactjs

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