小编Jos*_*oss的帖子

Laravel 4多对多关系不起作用,没有找到数据透视表

我目前在与Laravel 4的关系方面遇到问题,我在使用数据透视表时遇到错误,该表在一个表上查询,其中两个组件都是单数名称.我创建了一个数据透视表lands_objs并填充它:

模型是:

<?php
    class Obj extends Eloquent
    {
        protected $guarded = array();
        public static $rules = array();
        public $timestamps = false;
        public function land()
        {
            return $this->belongsToMany('Land');
    }

<?php

    class Land extends Eloquent 
    {
        protected $guarded = array();
        public static $rules = array();
        public $timestamps = false;

        public function objs()
        {
            return $this->belongsToMany('Obj');
        }
     }
Run Code Online (Sandbox Code Playgroud)

以下是我按照标准填充数据透视表的方法.当然存在land,objs和lands_objs表:

<?php

use Illuminate\Database\Migrations\Migration;

class CreateLandsObjsTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('lands_objs', …
Run Code Online (Sandbox Code Playgroud)

many-to-many model laravel eloquent laravel-4

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

Laravel Restfull控制器和路由ajax/sync请求

我正在寻找使用普通表单将ajax请求作为同步请求处理的最有效方法.据我所知,有两种方法可以处理例如新的订单发布请求:

选项1:AJAX检查控制器(为简单起见,验证并省略).

//Check if we are handling an ajax call. If it is an ajax call: return response
//If it's a sync request redirect back to the overview
if (Request::ajax()) {
    return json_encode($order);
} elseif ($order) {
    return Redirect::to('orders/overview');
} else {
    return Redirect::to('orders/new')->with_input()->with_errors($validation);
} 
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我必须在每个控制器中进行检查.第二种情况解决了这个问题,但对我来说这看起来有些过分.

选项2:让路由器根据请求处理请求检查和asign控制器.

//Assign a special restful AJAX controller to handle ajax request send by (for example) Backbone. The AJAX controllers always show JSON and the normal controllers always redirect like in the old days. …
Run Code Online (Sandbox Code Playgroud)

php rest laravel

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

如何使用显示标签默认选择多选primeng的值

如何选择multiselect primeng的默认值,需要这个来进行表单更新

代码:

@Component({
  template: `<p-multiSelect [options]="cities" [(ngModel)]="selectedCities" ></p-multiSelect>`
})
export class MyComponent {

  cities: SelectItem[];
  selectedCities= [];


  public constructor() {
        this.cities = [];
    this.cities.push({ label: 'Paris', value:{id:'1',country:'France', name:'paris'}  });
    this.cities.push({ label: 'Madrid', value:{id:'2',country:'Spain', name:'madrid'}  });
    this.selectedCities.push({id:'2',country:'Spain', name:'madrid'})
  }
Run Code Online (Sandbox Code Playgroud)

当前行为:值在列表中被选中,但标签为空

primeng angular

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

无法访问中间件内的req.body

我实际上在带有Express的node.js中有一个非常小的应用程序,我无法访问req.body.

这是我的app.js代码:

var express = require('express'),
    middleware = require('./middleware'),
    mysql  = require('mysql'),
    app = express();

app.use(middleware.authenticate);
app.use(middleware.getScope);

app.listen(3000);
module.exports = app;
Run Code Online (Sandbox Code Playgroud)

以及带有中间件的文件:

var bcrypt = require('bcrypt'),
    mysql  = require('mysql');

function authenticate(req, res, next){
   console.log(req.body);
    next();
}

function getScope(req, res, next){
    console.log(req.body);
    next();
}

module.exports.authenticate = authenticate;
module.exports.getScope = getScope;
Run Code Online (Sandbox Code Playgroud)

在所有情况下,req.body都是undefined.

我发送带有x-www-form-urlencoded协议的Postman数据,在这种情况下是必须的.

在此输入图像描述

谢谢!!

rest node.js express

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

删除事件监听器,d3js无法正常工作

我有一个svg结构,里面有一些形状.我想在单击一个形状时触发一个事件,而在单击一个svg时触发另一个.问题是SVG事件总是被触发.

为了防止这种情况,我禁止事件从形状冒泡.此外,我试图用d3禁用该事件,但似乎无法正常工作.还尝试使用本机javascript代码禁用事件.

超简单代码的一个例子是:

svg结构

<svg id="canvas" xmlns="http://www.w3.org/2000/svg" version="1.1">
    <g>
        <circle class="shape" r="10" cx="10" cy="10">
    </g>
</svg>
Run Code Online (Sandbox Code Playgroud)

javascript代码

d3.select('#canvas').on('click',svgClickEvents);

d3.selectAll('.item')
    .on("mouseover",mouseoverItem)
    .on('mouseleave',mouseleaveItem);

//click
d3.selectAll('.item',function(){

    //when an item is clicked, svgClickEvents must not be fired   
    d3.select('#canvas').on('click',null);  //this should remove the event listener
    //also tried with getElementById('canvas').removeEventListener('click',clickEvents,false);

d3.select(this)
        .on("click",function() {
            d3.event.stopPropagation(); 
            console.log("click circle")
        });
});
Run Code Online (Sandbox Code Playgroud)

我知道事件没有被禁用,因为我从clickEvents函数获取console.log()文本警报.

谢谢.

javascript svg event-bubbling dom-events d3.js

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

使用 Sailsjs 的连接池

由于没有关于如何使用 Sailsjs 创建连接池的文档,我一直在搜索它,我发现Sails -mysql 适配器确实有任何池配置,但与测试有关:

{
    host: process.env.WATERLINE_ADAPTER_TESTS_HOST || 'localhost',
    // (...)
    database: process.env.WATERLINE_ADAPTER_TESTS_DATABASE || 'sails_mysql',
    pool: true,
    connectionLimit: 10,
    waitForConnections: true
}
Run Code Online (Sandbox Code Playgroud)

所以我尝试在 Sails 中包含pool: true到我的connections.js文件中:

someMysqlServer: {
    adapter: 'sails-mysql',
    host: '127.0.0.1',
    user: 'root',
    password: '',
    pool: true,
    database: 'mydatabase'
},
Run Code Online (Sandbox Code Playgroud)

服务器仍在运行,我从数据库中恢复数据,但我完全不确定我是否设置了连接并抛出了一个池服务。有什么办法可以检查这个功能吗?

谢谢。

mysql connection-pooling sails.js

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

将集合转换为 Eloquent 对象

目前我在 Laravel 5.2 中使用 Xero API。我想利用 Eloquent 的强大功能来处理这些数据。

实际上,我可以恢复发票,甚至使用链接方法过滤它们,如下所示:

    $invoices = XeroPrivate::load('Accounting\\Invoice')
        ->where('Status', 'DRAFT')
        ->execute();
Run Code Online (Sandbox Code Playgroud)

如果我执行 a var_dump,我会得到这种数据:

object(XeroPHP\Remote\Collection)[173]
  public 0 => 
    object(XeroPHP\Models\Accounting\Invoice)[171]
      protected '_data' => 
        array (size=31)
          'Type' => string 'ACCPAY' (length=6)
          'Contact' => 
Run Code Online (Sandbox Code Playgroud)

雄辩的链接方法可以让我执行这样的事情。目前失败了:

    $invoices = XeroPrivate::load('Accounting\\Invoice')
        ->where('Date','>','2016-03-20')
        ->execute();
Run Code Online (Sandbox Code Playgroud)

检查 Laravel 的文档,假设我可以使用以下命令转换为集合collect

    $collection = collect($invoices);
Run Code Online (Sandbox Code Playgroud)

$collection并不能解决问题。现在数据结构不同了但仍然无法使用Eloquent。现在数据是:

object(Illuminate\Support\Collection)[163]
  protected 'items' => 
    array (size=24)
      0 => 
        object(XeroPHP\Models\Accounting\Invoice)[171]
          protected '_data' => 
            array (size=31)
Run Code Online (Sandbox Code Playgroud)

但事实证明,数据是Illuminate\Support\Collection正确的。

谢谢!

php method-chaining eloquent laravel-5 xero-api

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