我正在尝试在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) 我有以下错误:
未定义的属性: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 …
我正在实现一个基于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 …
我知道如何使用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 …
我有一个全新的 Laravel 安装。我已经从一个 Laravel 项目的 github 存储库中移动了代码,相同版本 (5.3)。
一切正常,除了由于某种原因数据库种子不会运行。
例如,我可以在新的 Laravel 安装中从 github 加载的迁移中进行迁移,就像我在首先将迁移推送到 github 的服务器上一样。
但是我做不到php artisan db:seed,这意味着我漂亮的小数据库是空的!>:(
我得到:ReflectionException 类不存在
我尝试过的:
php artisan optimizephp artisan clear:cachecomposer clearcachecomposer 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) 如果我循环浏览我的工作表并想测试给定工作表中是否存在任何 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 条件块仍会运行。
我正在使用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) 我有以下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顶部,然后是一个关系属性(我不需要的其他属性 - 比如perPage和wasRecentlyCreated)与另一个模型,然后是第二个模型上的更多嵌套关系.我想结合前两个模型,只有一个父母的关系.
所以,例如,当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)
...我可以重组这些并将两个第一个模型合并?或者重命名并映射关系和属性,同时忽略无关的属性,并为视图创建一个非常简单的属性数组? …
考虑到React 16的Context API,我已经看了两个可能过时的答案。
他们是:
和:
如何在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
因此,我不确定要从顶级/父元素更新上下文并将其传递给内部组件。
我正在修改 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) 我正在为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)
而且仍然无法正常工作。
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 = …
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) 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 …
laravel ×6
javascript ×5
laravel-5 ×5
php ×5
angularjs ×2
reactjs ×2
composer-php ×1
css ×1
events ×1
excel ×1
json ×1
laravel-5.3 ×1
laravel-5.4 ×1
laravel-5.5 ×1
math ×1
vba ×1