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

laravel-如何给雄辩的模型取别名

穆嘉
2023-03-14
<?php

namespace App\Http\Models;
use Illuminate\Database\Eloquent\Model;
use Sofa\Eloquence\Eloquence;
use Sofa\Eloquence\Mappable;

class User extends Model
{
    use Eloquence, Mappable;

    public $id;
    public $name
}


$data= User::select('distinct User.name')->join('Member as m','User.id','m.userId')->whereRaw('User.name is not null')->get();

我希望避免一直使用表名,而使用别名。

共有3个答案

鲁建茗
2023-03-14

这对我很有用:

$query = Model::from('table as alias')->get();

你可以检查它:

dd($query->toSql());
麹高义
2023-03-14

你可以加上

protected $table = 'users as u';  

--用户是精确的表名在db

并像这样使用它

User::where('u.id', 1229)->select('u.email')->get();
杨成礼
2023-03-14

您可以使用Model::from方法

<?php

    class User extends Model
    {
      use Eloquence, Mappable;

      public $id;
      public $name
    }
    $data= User::from('User as u')
             ->select('distinct u.name')
             ->join('Member as m','u.id','m.userId')
             ->whereRaw('u.name is not null')
             ->get();

注意:我看到很多投票,但这种方法不是很好的实践。最好找一个不同的方法。我的建议是走寻常路。

 类似资料:
  • 我试图通过使用Laravel Eloquent获得数据,但我无法访问。无论何时尝试,它都显示尝试获取非对象的属性“name” 我有两个模型。类别和文章。类别有许多文章。以下是模型: 类别模型 文章模式 物品管理员 查看刀片(admin.article.pending) 在这里的刀片,我不能访问类别通过雄辩的属于功能,我没有得到背后的原因得到的消息: ErrorException(E_ERROR)试

  • 所以我有三个模型: 挑战 使用者 参赛者 挑战有它的主键 用户只有它的主键 而且进入者有外键挑战id和用户id 如果我从挑战中查询(我有挑战标识),用雄辩的方式让所有与该挑战相关的用户的最佳方式是什么?我基本上想要所有进入者数据和所有用户数据的集合。我一直在研究这种方法,但我似乎无法让它发挥作用。

  • 问题内容: 我有三张桌子 物品表 分类表 用户表 我想显示其类别名称而不是category_id和user_name而不是user_id的文章,我尝试像这些查询一样工作! 但是我想用口才来做。拜托,我该怎么办? 问题答案: 使用Eloquent,它非常容易检索关系数据。在Laravel 5中使用您的场景检查以下示例。 我们有三种模型: 1)文章(属于用户和类别) 2)类别(有很多文章) 3)用户(

  • 提前感谢您的时间。如果你赶时间,跳到粗体部分。 我有一个以下用例:应用程序的每个用户都使用自己的一组前缀表来创建有说服力的模型(即,对于code_发票使用Invoice.php,对于code_客户使用Client.php)。前缀在用户表中定义(例如users.code)。 在Laravel 5.2中,我已经能够通过在用户登录后读取运行时设置的配置(或会话)变量来轻松设置雄辩模型的$table属性。

  • 我想在PHPUnit测试中使用模拟对象(mockry)。模拟对象需要同时设置一些公共方法和一些公共属性。这门课是拉威尔雄辩的典范。我试过这个: ... 但是设置公共属性会返回以下错误: BadMethodCallException:此模拟对象上不存在方法Mockery_0_User::setAttribute() 在模拟简单类时不返回此错误,但在尝试模拟雄辩模型时返回此错误。我做错了什么?

  • 我将有一个充满涉及其他表(关系)的信息的表。此表中的大多数信息将只有引用相关表的ID。如果我使用“产品”作为此表的示例,对于某些列来说可能是这样的: 我想把这个“产品”表倒出到一个列表中。当我将其转储(关系)时,我需要查找这些列中的所有项。我知道如何做物品和物品,但是我不确定如果我有一个“产品”模型,我怎么能用雄辩的模型一次性做到这一点?我应该让产品表只是一个数据透视表吗?我可以用雄辩的模型做它,