当前位置: 首页 > 知识库问答 >
问题:

在Laravel Eloquent中获取HasOne关系中的特定列

赖翰
2023-03-14
public function store_address(): HasOne
{
    return $this->hasOne(Address::class, 'id', 'address_id');
}
public function store(): HasOne
{
    return $this->hasOne(Store::class, 'id', 'store_id');
}
Store::where('user_id', $user_id)
      ->select(\DB::raw('*')
      ->with(['store_address' => function($query) {
          return $query->select(['distance_to_user as distance']);
      }])
      ->orderBy('distance');

但是,它没有从地址表返回正确的距离。我怎么能那么做?

这是我得到的错误消息:

Column not found: 1054 Unknown column 'distance' in 'order clause' (SQL: select *, from `store` where `store`.`user_id` = 12 and `store`.`deleted_at` is null order by `distance` asc)

共有1个答案

冯玮
2023-03-14

我假设你们桌子的结构

地址:

id | store_id| body | distance_to_user
----------------------------------------
 1 | 1       |China | 100

对于商店:

id | name
--------------
 1 | Store_01
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Address extends Model
{
    //

    public function store()
    {
        return $this->belongsTo('App\Store');
    }
}
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Store extends Model
{
    //
    public function address()
    {
        return $this->hasOne('App\Address');
    }
}
        public function index()
        {
            //return Store::with(['address' => function($q){
            //    $q->select('distance_to_user as distance','store_id');
            //    }])->get();


            return Store::leftJoin('addresses', 'addresses.store_id', '=', 'stores.id')


                 ->select('stores.id','stores.name','distance_to_user as distance')

                // OR use ->select('stores.*','addresses.id as address_id','distance_to_user as distance')

                ->orderBy('distance','Desc')

                ->get();
        }
 类似资料:
  • hasOne关联是一种多对一的关系,意思是你定义的模型可以有多个实例指向一个其它的实例(所属相同模型或不同模型)。 用法 Animal.hasOne(association_name [, association_model [, options ] ]); 描述 association_name是两个模型之间的关系名称‘ association_model是要关联的另一个模型(如果没有定义,假设

  • 我想从最终结果中删除一些属性,并在这里找到了这个从Laravel集合中仅获取特定属性 这适用于顶层,但需要从相关项目中删除一些属性,例如用户有一个访问卡,并且访问卡的属性中有一些长文本详细信息。 我想从最终结果中删除该属性。使用链接中提到的方法是否可行?

  • 我们有一个功能表和一个层次表,一个层次可以有多个功能。所以想要查询并获得输出作为 字节对应于tierID和特征名称列表 设法从一个老帖子中得到了答案 此外,我们想得到一张

  • 问题内容: 我试图在特定的timeZone上获取当前的实例,但是它没有按预期工作。关于如何执行此操作的任何想法? 这是我所做的: 但是,返回的即时时间始终是UTC。我多次更改了ZoneID,但始终是错误的。请指教。 编辑: 我正在与一个使用timeStamp生成日志的应用程序进行交互,我需要对这些事件进行操作。如果我立即使用特定的TimeStamp启动程序,则应该立即从该TimeStamp中读取事

  • 我使用RxAndroidBle与kotlin。到目前为止,我可以设置多个通知,我正在接收它们。 如何将通知映射到其特定特征? 到目前为止: 谢谢你

  • 问题内容: 我将如何获取Java中int的特定子集(例如5-10位)? 寻找一种可以传递特定位位置的方法。我不确定如何创建一个根据输入而变化的遮罩,或者即使那是应该如何做的也不确定。 我知道这是如何让前台说出一个int的10位:(我认为)int x = num >> 22; 问题答案: 假设您有一个数字,并希望从到(i = 5,j = 10)。 请注意,这将为您提供最后一点 会给你结果。 左侧很明