小编Sag*_*ara的帖子

在同一模型上雄辩的亲子关系

我有一个模型CourseModule,每个项目都与相同的模型相关.

数据库结构:

在此输入图像描述

模型中的关系:

    public function parent()
    {
        return $this->belongsTo('App\CourseModule','parent_id')->where('parent_id',0);
    }

    public function children()
    {
        return $this->hasMany('App\CourseModule','parent_id');
    }
Run Code Online (Sandbox Code Playgroud)

我尝试了以下内容,但它只返回一个级别的关系.

尝试:

CourseModule::with('children')->get();
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个类似于以下的json输出,

预期产出:

[
  {
    "id": "1",
    "parent_id": "0",
    "course_id": "2",
    "name": "Parent",
    "description": "first parent",
    "order_id": "1",
    "created_at": "-0001-11-30 00:00:00",
    "updated_at": "-0001-11-30 00:00:00",
    "children": [
      {
        "id": "2",
        "parent_id": "1",
        "course_id": "2",
        "name": "Child 1",
        "description": "child of parent",
        "order_id": "2",
        "created_at": "-0001-11-30 00:00:00",
        "updated_at": "-0001-11-30 00:00:00",
        "children": [
          {
            "id": "3",
            "parent_id": "2",
            "course_id": "2",
            "name": "Child2", …
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent laravel-5 laravel-5.1

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

Python,numpy,einsum乘以一堆矩阵

出于性能原因,

我很好奇是否有一种方法来叠加一堆矩阵的堆栈.我有一个4-D阵列(500,201,2,2).它基本上是500长度的(201,2,2)矩阵堆栈,对于500中的每一个,我想用einsum乘以相邻的矩阵,得到另一个(201,2,2)矩阵.

我只在最后的[2x2]矩阵上进行矩阵乘法.由于我的解释已经脱轨,我只会展示我现在正在做的事情,以及"减少"等效物以及为什么它没有帮助(因为它的计算速度相同).优选地,这将是一个numpy单行,但我不知道那是什么,或者即使它是可能的.

码:

Arr = rand(500,201,2,2)

def loopMult(Arr):
    ArrMult = Arr[0]
    for i in range(1,len(Arr)):
        ArrMult = np.einsum('fij,fjk->fik', ArrMult, Arr[i])
    return ArrMult

def myeinsum(A1, A2):
    return np.einsum('fij,fjk->fik', A1, A2)

A1 = loopMult(Arr)
A2 = reduce(myeinsum, Arr)
print np.all(A1 == A2)

print shape(A1); print shape(A2)

%timeit loopMult(Arr)
%timeit reduce(myeinsum, Arr)
Run Code Online (Sandbox Code Playgroud)

返回:

True
(201, 2, 2)
(201, 2, 2)
10 loops, best of 3: 34.8 ms per loop
10 loops, best of 3: 35.2 ms per loop
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.事情是有用的,但是当我不得不在一大堆参数上迭代时,代码往往需要很长时间,而我想知道是否有办法避免循环中的500次迭代.

python arrays performance numpy multiplication

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

在chrome新版本中打印隐藏部分的预览边距

我已经展示了一些显示问题的截图...

问题:

我正在尝试使用只有表格打印此页面,如图所示,打开侧窗格我已将该侧窗格放入print-hidden并且它正在工作直到版本Google Chrome 46.0.2490.71但在css的下一次更新后无法正常工作.@media printmargin

目前我的谷歌Chrome版本是 48.0.2564.23

Sidepane页面:

Image One带侧板

新版本的chrome显示边距,如打印预览图像所示,此问题仅在Chrome浏览器中出现,它在所有其他浏览器中正常工作

Sidepane Page Print Priview:

使用侧窗打印预览

没有Sidepane页面:

图像二没有侧板

没有Sidepane页面打印Priview:

无边栏打印预览

我不明白为什么新版本的chrome会占用print-hiddendiv的余量...... !!

重要的是它没有在chrome最新更新中工作,否则它很好.

如果有人在最​​新的chrome更新中发现了打印问题,请告诉我任何人都有解决方案.

您可以询问是否有任何问题需要了解我的问题.

谢谢...

尝试:

我试图给出负左边距但在这种情况下所有其他浏览器的打印预览都不合适

问题在GitHub上:

GitHub问题

Google Chrome论坛上的问题:

铬论坛问题

的jsfiddle:

小提琴

在JsFiddle我已经使用了css属性,margin-left但它在Chrome最新版本中没有工作47它在旧版本中运行良好,Google Chrome 46.0.2490.71但在下一次更新中它是其他浏览器中的大问题它正常工作非常顺利...

css printing google-chrome print-preview

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

Mysql查询组Concat在单个查询中限制子表的多个记录

专辑表:

+------------------------------+
| id      name       updated_at|
+------------------------------+
Run Code Online (Sandbox Code Playgroud)

专辑成员表:

+------------------------------------+
| id      album_id         member_id |
+------------------------------------+
Run Code Online (Sandbox Code Playgroud)

Album_media表:

+--------------------------------+
| id       album_id         link |
+--------------------------------+
Run Code Online (Sandbox Code Playgroud)

我的查询:

$limit = 30;
$member_id = 1;
SELECT a . *,
(SELECT GROUP_CONCAT(CONCAT('$assets/album_image/medium/', ds_album_media.link) SEPARATOR ',') as link
FROM ds_album_media WHERE ds_album_media.album_id = a.id ORDER BY a.updated_at desc LIMIT 0 , 5)
AS photo_link FROM `ds_album` a
LEFT JOIN ds_album_media amd ON amd.album_id = a.id
LEFT JOIN ds_album_member amb ON amb.album_id = a.id
where amb.member_id = " …
Run Code Online (Sandbox Code Playgroud)

php mysql laravel eloquent laravel-5.1

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

Laravel刀片定制指令包含部分

我有一个自定义的Blade指令,我试图在其中包含一部分使用Blade语法@include().问题是我有一个自定义视图命名空间:

\Blade::directive('name', function() {
    $viewsNamespace = 'viewsNameSpace::';
    $formPartial = $viewsNamespace . 'partials._form';
    return "{{ @include({$formPartial}) }}";
});
Run Code Online (Sandbox Code Playgroud)

这输出错误,

Class 'viewsNameSpace' not found

因为它的解释viewsNameSpace::是一个阶级.

这只输出字符串而不解析它:

return "@include('{$formPartial}')";
Run Code Online (Sandbox Code Playgroud)

这不是抛出任何错误,但它没有加载部分:

return "{{ @include('{$formPartial}') }}";
Run Code Online (Sandbox Code Playgroud)

请注意,当我在这样的模板中使用时,部分工作正常:

@include('viewsNameSpace::partials._form')
Run Code Online (Sandbox Code Playgroud)

但是我无法从指令中恢复正常.

任何帮助和建议将不胜感激!谢谢!

laravel blade laravel-5

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

AngularJS [typeahead]重新打开onFocus上的结果下拉列表

我有以下使用情况的问题提前键入:

问题:

  • 用户开始输入,下拉列表打开并显示结果
  • 用户点击输入字段(没有从输入字段中删除任何内容),下拉菜单关闭
  • 用户点击返回到预先输入字段(并且不会开始输入任何内容)并且没有任何反应.→所需的行为是:下拉列表再次打开并显示与上次相同的结果列表(当然,只有在输入字段中有任何内容时才会发生)
  • 当用户搜索任何内容并且如果找到结果并且焦点丢失并且字符串没有被清除时,焦点没有任何反应,没有提示
  • 当用户搜索任何内容并且如果找不到结果并且焦点丢失时,字符串将被清除,并且还会发现没有找到数据的消息.

因此,故事的道德是在第一种情况下,如果未从列表中选择字符串并且它是列表字符串的子字符串,则应该清除字符串...

那么,也许是一个类型搜索焦点设置?

HTML:

<input type="text" focus-me="opened" ng-focus="onFocus($event)" ng-show="opened" ng-trim="false" ng-model="selected" empty-typeahead typeahead="state for state in states | filter:$viewValue:stateComparator" class="form-control" />
Run Code Online (Sandbox Code Playgroud)

JS:

(function () {
var secretEmptyKey = '[$empty$]'

angular.module('plunker', ['ui.bootstrap'])
.directive('focusMe', function($timeout, $parse) {
  return {
      //scope: true,   // optionally create a child scope
      link: function(scope, element, attrs) {
          var model = $parse(attrs.focusMe);
          scope.$watch(model, function(value) {
              if(value === true) { 
                  $timeout(function() {
                      element[0].focus();
                  });
              }
          });
      }
  };
})
.directive('emptyTypeahead', function …
Run Code Online (Sandbox Code Playgroud)

typeahead angularjs angular-ui-bootstrap angular-ui-typeahead

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

使用angularJs和laravel 4的简单工作流程

我首先说我真的很新,angularJs我觉得它对Web应用程序的大环境非常有用.

经过一些研究和文档记录后,我得到了一些问题,首先它让我对如何将它实现到服务器端语言(在我的情况下基于laravel 4.1的PHP)感到困惑,因为它angularJs有路由和模板等...所以它是一个适当的框架,甚至可以独立工作.

让我们更好地了解我想要到达的地方,以了解这个2框架的工作流程.


第一个问题

我如何在一些资源上看到angularJs很容易在json中显示结果并与dom绑定.我甚至看到一些开发人员在第一次加载dom时使用angularJs打印出结果,而不是在laravel控制器上使用单个函数并使用laravel处理结果.

我认为它在兼容性方面不是很有用,因为角度正在工作IE 8及之后如果我禁用javascript同样我看不到结果.相反,如果我使用laravel 4如何第一个处理程序的第一个结果,我将永远看到它!这是我看到的一个例子.

路线Laravel

// set 2 types of route, the first for get the json results for do handle to Angular
// the second route for display the view
Route::get('users','UserController@getUsers');
Route::get('/','UserController@getIndex);
Run Code Online (Sandbox Code Playgroud)

UserController Laravel

public function getUsers() {

$users = User::all();
return $users; // return all users in json

}

public function getIndex() {

   return View:make('index');

}
Run Code Online (Sandbox Code Playgroud)

AngularJs

module.controller('UserCtrl', function($scope,$http) {

   users: function() {
         return $http.get('/users').then(function(result){
                    return result.data;
                });
   }; …
Run Code Online (Sandbox Code Playgroud)

php ajax angularjs laravel-4

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

如何在带有dropzone.js的字符串模板中使用vue.js语法

我目前正在尝试将dropzone.js Doc Ref实施到我的应用程序中.但是因为我已经设法运行了dropzone.js的基本功能

我想自定义preview-template隐藏并在不同的应用程序状态下显示上传进度条.

我可以preview-template通过在初始化dropzone实例期间将html字符串传递给options对象来自定义.正如dropzone.js文档中所述但显然,vue如果我简单地将它洒在这个html字符串上,那么语法就不会被处理.它必须以某种方式处理以实现该事物.

问题:

我想做的是vue.js在这个预览模板中使用语法.这是我正在谈论的组件.

码:

<dropzone id="myVueDropzone" :use-custom-dropzone-options=true
          :dropzoneOptions="dzOptions"
          :url="photosForm.uploadImageUrl"
          v-on:vdropzone-removed-file="deleteImage"
          :preview-template="templatePreview"
          v-on:vdropzone-success="showSuccess">
</dropzone>
Run Code Online (Sandbox Code Playgroud)

Vue-Script代码:

import Dropzone from 'vue2-dropzone';
export default {

    methods: {

        templatePreview(){
            return `
                    <div class="dz-preview dz-file-preview">
                      <div class="dz-image" style="width: 200px;height: 180px">
                          <img data-dz-thumbnail />
                      </div>
                      <div class="dz-details">
                        <div class="dz-size"><span data-dz-size></span></div>
                        <div class="dz-filename"><span data-dz-name></span></div>
                      </div>

                      <div class="dz-progress"><span class="dz-upload" data-dz-uploadprogress></span></div>
                      <div class="dz-error-message"><span data-dz-errormessage></span></div>
                      <div class="dz-success-mark"><i class="fa fa-check"></i></div>
                      <div class="dz-error-mark"><i class="fa fa-close"></i></div> …
Run Code Online (Sandbox Code Playgroud)

dropzone.js vue.js vue-component vuejs2

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

Angularjs - Split String问题

我暂时没有看到眼睛..下面的代码引发了一个错误

错误:value.split不是函数

是一种分裂简单字符串的angularjs方式

var value = "7,9";

$scope.getTemplate = function(value){

    var values = value.split(",");

    value1 = values[0];
    value2 = values[1];

    $scope.templateid = value1;
    $scope.userid = value2;
}
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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

如何高效地编写SQL条件?

我有以下非常大的(~10e8记录)表(table):

+--------------------------------+
|      id      order       value |
+--------------------------------+
|      PK       int         int  |
|       1        1           1   |
|       2        2           5   |
|       3        2               |
|       4        2           0   |
+--------------------------------+

如您所见,value列只能包含非负整数或null.现在,我需要编写一个返回没有a的订单的查询value > 0(即order = 2不保存条件,因为有记录value = 5).

反向查询很简单:

SELECT order
FROM table
WHERE value > 0
Run Code Online (Sandbox Code Playgroud)

查询的性能对我来说是令人满意的.

但我们不能写

SELECT order
FROM table
WHERE value = 0
Run Code Online (Sandbox Code Playgroud)

因为有可能有一个具有相同订单的记录,但有value > 0.我能找到写这个查询的唯一方法是:

SELECT order
FROM table
GROUP BY …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

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