小编Jar*_*zyk的帖子

如何模仿与逗号分隔的ID的雄辩关系

我有两个表,订单和图层.在我的订单表中,我在layer_id中保存了一个数组,我已将其设置为varchar.我先爆炸它然后显示记录.我想做的是显示层表中的记录,例如layer_name列中的名称.我也建立了他们的关系.我将不胜感激任何建议.

我的控制器:

public function getCheckout(){
    $orders = Order::get();
    return View::make('checkout')->with('orders', $orders);
}
Run Code Online (Sandbox Code Playgroud)

我的看法:

@forelse($orders as $order)

<div class="panel panel-default">
    <div class="panel-heading">
        <h3 class="panel-title">{{ $order->style_id }}</h3>
    </div>
    <div class="panel-body">
    <p>Layers you chose</p>

    <table class="table">
        <tr>
        <td>ID</td>
        @foreach(explode(',', $order->layer_id) as $layer) 
            <td>{{ $layer }}</td>
        @endforeach
        </tr>

    </table>
</div>
    <div class="panel-footer"><button class="btn btn-primary">Confirm</button></div>
</div>

@empty

<p>Nothing to display</p>

@endforelse
Run Code Online (Sandbox Code Playgroud)

我的模特

Class Order extends Eloquent {
    public function layer() {
        return $this->belongsTo('Layer', 'layer_id');
    }
}
Run Code Online (Sandbox Code Playgroud)

database laravel eloquent

5
推荐指数
2
解决办法
4685
查看次数

雄辩多对多 - 如何轻松加载远程关系

我有3张桌子; 用户,组和权限

在模型中,我在用户模型中将关系设置为belongsToMany:

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

在组模型中:

public function users() {
    return $this->belongsToMany('User');
}

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

在权限模型中:

public function groups() {
    return $this->belongsToMany('Group', 'id');
}
Run Code Online (Sandbox Code Playgroud)

许多用户 - 对许多组 - 许多组 - 对许多权限

我正在尝试获取用户拥有的所有权限,并且不知道它的代码应该是什么样子.有人可以帮忙吗?

php mysql laravel eloquent

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

如何使用Eloquent和MySQL按最后一个ID排序分组结果?

我试过这个查询,但它只订购id列,休息不是.

$chapters = Test::select(DB::raw('*, max(id) as id'))
        ->groupBy('id_equip')
        ->orderBy('id', 'asc')
        ->get();
Run Code Online (Sandbox Code Playgroud)

php mysql sql-order-by laravel eloquent

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

Laravel 迁移外键

我正在尝试在 Laravel 中建立一些关系,我对关系和迁移有点困惑。这是我正在做的一个简单的例子:

Users -> has_many -> Cats
Run Code Online (Sandbox Code Playgroud)

所以我的用户迁移文件与 Cats 有如下关系:

$table->foreign('cats_id')->references('id')->on('cats')
Run Code Online (Sandbox Code Playgroud)

但是当我运行迁移时,我得到:

Error: relation cats does not exist...
Run Code Online (Sandbox Code Playgroud)

我需要在用户表之前构建 Cats 表吗?

我是否还需要指定两者之间的外部关系,或者如果模型包含“hasMany”和“belongsTo”,Laravel 不会在迁移时自动建立这些关系?

我真的需要迁移吗?

php laravel laravel-4

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

如何计算Laravel中集合的不同值?

我一直在努力研究如何从Eloquent中的集合中获取不同值的数量.

我一直在尝试几种方法,比如在docs上找到的unique(),values()等.即使确实存在count()方法,也没有方法来获取不同值的计数.

例如,通过应用以下查询

$technicalshighestdegrees = Capsule::table('academicinfo AS fa')
        ->selectRaw('DISTINCT fa.academic_id AS Id,c.name AS Degree')
        ->leftJoin('academics AS a','fa.academic_id','=','a.id')
        ->leftJoin('cat_degree AS c','fa.level','=','c.id')
        ->whereIn('a.type',['Technical'])
        ->where('a.status','!=','Retired')
        ->where('c.degree',true)
        ->orderBy('a.id')
        ->orderBy('c.hierarchy','desc')/*http://stackoverflow.com/a/17006377/1883256*/
        ->get();
Run Code Online (Sandbox Code Playgroud)

我收到这个系列:

Illuminate\Support\Collection Object
(
    [items:protected] => Array
        (
            [0] => stdClass Object
                (
                    [Id] => 3
                    [Grado] => Master
                )

            [1] => stdClass Object
                (
                    [Id] => 3
                    [Grado] => Bachelor
                )

            [2] => stdClass Object
                (
                    [Id] => 4
                    [Grado] => Master
                )

            [3] => stdClass Object
                (
                    [Id] => 4 …
Run Code Online (Sandbox Code Playgroud)

laravel eloquent

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

复杂的 Laravel 5 group by on collection

我有一个集合“事件”,它具有“站点”和“检查”的关系。

我想要做的是将“检查日期”的所有事件分组,然后在该组下按“站点”分组事件。

IE

  • 检验日期 (YYYY-MM-DD)
    • 站点 1
      • 事件名称
      • 事件名称
    • 站点 2
      • 事件名称
  • 检验日期 (YYYY-MM-DD)
    • 站点 1
      • 事件名称

一旦我有了这个分组,我想输出一个数组,如:

[
  'title => 'Site Name: Event Name, Event Name, Event Name', 
  'date' => 'YYYY-MM-DD'
]
Run Code Online (Sandbox Code Playgroud)

这远远超出了我的智力,所以任何帮助将不胜感激!顺便说一句,我正在使用 Postgresql,所以我似乎只能在 ID 上使用 groupBy?

我尝试了一些使用 groupBy() 和 map() 的东西,这似乎让我有些地方但不知道如何继续:

$events = $events->groupBy('inspection.id')->map(function($item){
    return $item->groupBy('site.id');
});
Run Code Online (Sandbox Code Playgroud)

php arrays grouping laravel

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

标签 统计

laravel ×6

eloquent ×4

php ×4

mysql ×2

arrays ×1

database ×1

grouping ×1

laravel-4 ×1

sql-order-by ×1