Laravel 拉雷维尔雄辩的索特比和OrderBy
我得去看看相关的桌子 产品Laravel 拉雷维尔雄辩的索特比和OrderBy,laravel,eloquent,Laravel,Eloquent,我得去看看相关的桌子 产品 身份证 名义 子管道(子表) 身份证 名义 产品标识 我需要按Producto.Nombre排序,然后再按SubProducto.Nombre排序 它是以下各项的组合: $subProductos=SubProducto::with('producto')->get()->sortBy('producto.nombre') 及 $subProductos=SubProducto::orderBy('nombre','ASC')->get() 有什么帮助吗?谢谢
- 身份证
- 名义
- 身份证
- 名义
- 产品标识
class producto extends Model
{
public function SubProductos()
{
return $this->hasMany('Certifier\SubProducto');
}
}
模型SubProducto.PHP
class SubProducto extends Model
{
public function EmpresaSubProductos()
{
return $this->hasMany('Certifier\EmpresaSubProducto');
}
public function producto()
{
return $this->belongsTo('Certifier\Producto');
}
public function subProductoFormateado() {
return $this->producto->nombre . ' - ' . $this->nombre;
}
}
一些建议,你的函数应该使用小写leter,你的类应该使用大写leter 我编辑了代码:
$productos= producto::with(array('SubProductos'=>function($query){
$query->orderBy('nombre', 'ASC');
}))
->orderBy('nombre')
->get();
一些建议,你的函数应该使用小写leter,你的类应该使用大写leter 我编辑了代码:
$productos= producto::with(array('SubProductos'=>function($query){
$query->orderBy('nombre', 'ASC');
}))
->orderBy('nombre')
->get();
我认为,按照第一条注释中的建议,将所有需要的字段组合在一起的回调可能会起到作用 我认为,按照第一条评论中的建议,将所有需要的字段组合在一起的回调可能会奏效 我假设您在blade.php中将它们作为视图进行排序 从控制器开始,只需定义
$productos
项即可
// retrieving productos from Model
$productos = producto::orderBy('nombre')->get()->all();
return view( 'your.blade.view' )->with( [ 'productos' => $productos ] );
在blade.php中,您可以像这样显示$productos
<ul class="list-producto">
@foreach( $productos as $producto )
<li class="producto">
<span>{{ $producto->nombre }}</span>
@if( $productos->sub_productos )
<ul class="list-sub-producto">
@foreach( $productos->sub_productos->sortBy('nombre')->all() as $sub_producto )
<li class="sub-producto">
<span>{{ $producto->nombre }} - {{ $sub_producto->nombre }}</span>
</li>
@endforeach
</ul>
@endif
</li>
@endforeach
</ul>
@foreach($productos作为$producto)
-
{{$producto->nombre}
@如果($productos->sub_productos)
@foreach($productos->sub_productos->sortBy('nombre')->all()作为$sub_producto)
-
{{$producto->nombre}}-{{$sub_producto->nombre}
@endforeach
@恩迪夫
@endforeach
需要注意的是,您应该将
class producto
替换为class producto
,因为模型通常使用。我假设您在blade.php中将它们作为视图进行排序
从控制器开始,只需定义$productos
项即可
// retrieving productos from Model
$productos = producto::orderBy('nombre')->get()->all();
return view( 'your.blade.view' )->with( [ 'productos' => $productos ] );
在blade.php中,您可以像这样显示$productos
<ul class="list-producto">
@foreach( $productos as $producto )
<li class="producto">
<span>{{ $producto->nombre }}</span>
@if( $productos->sub_productos )
<ul class="list-sub-producto">
@foreach( $productos->sub_productos->sortBy('nombre')->all() as $sub_producto )
<li class="sub-producto">
<span>{{ $producto->nombre }} - {{ $sub_producto->nombre }}</span>
</li>
@endforeach
</ul>
@endif
</li>
@endforeach
</ul>
@foreach($productos作为$producto)
-
{{$producto->nombre}
@如果($productos->sub_productos)
@foreach($productos->sub_productos->sortBy('nombre')->all()作为$sub_producto)
-
{{$producto->nombre}}-{{$sub_producto->nombre}
@endforeach
@恩迪夫
@endforeach
需要注意的是,您应该将class producto
替换为class producto
,因为模型通常使用。使用以下方法解决:
$subProductos = SubProducto::selectRaw('sub_productos.*, productos.nombre as nombre_producto')
->join('productos', 'productos.id', '=', 'sub_productos.producto_id')
->orderBy('productos.nombre', 'ASC')
->orderBy('sub_productos.nombre', 'ASC')
->get();
不知道为什么,但这是关键:
$subProductos=SubProducto::selectRaw('sub_productos.*,productos.nombre作为nombre_producto)使用以下方法解决:
$subProductos = SubProducto::selectRaw('sub_productos.*, productos.nombre as nombre_producto')
->join('productos', 'productos.id', '=', 'sub_productos.producto_id')
->orderBy('productos.nombre', 'ASC')
->orderBy('sub_productos.nombre', 'ASC')
->get();
不知道为什么,但这是关键:
$subProductos=SubProducto::selectRaw('sub_productos.*,productos.nombre作为nombre_producto)谢谢。出现错误:Parse error:syntax error,意外的“}”SubProductos是子表。我需要查询所有SubProductos。如前所述,更改“SubProductos”“不管你叫什么名字,这个词都是用来表达productos和subproductos之间的关系的函数。如果你不明白我说的话,给我们看看你的模型代码,我们会帮你的。我添加了模型hanks。出现错误:Parse error:syntax error,意外的“}”SubProductos是子表。我需要查询所有SubProductos。如前所述,更改“SubProductos”“不管你叫什么名字,都可以用这个词来表示构成productos和subproductos之间关系的函数。如果你不明白我说的话,给我们看看你的模型代码,我们会帮助你。我添加了模型。我尝试了这个$subproductos=SubProducto::with('producto')->get()->sortBy('producto.nombre')->sortBy('SubProducto.nombre');但是没有使用第二个“nombre”,我尝试了$subProductos=SubProducto::with('producto')->get()->sortBy('producto.nombre')->sortBy('SubProducto.nombre');但不使用第二个“名词”