【问题标题】:Method for get id through value - Laravel通过值获取 id 的方法 - Laravel
【发布时间】:2017-09-16 18:37:22
【问题描述】:

通过这个查询,我通过值在数据库中找到一个元素并获取 id:

Model::where($table,'=',$value)->first()->id;

但我需要创建一个方法,因为我将此代码与其他模型一起使用;一个可能的例子:

public function getId($model,$table,$value) {
    ...
}

我该怎么办?

谢谢!

【问题讨论】:

    标签: php database laravel-5 eloquent


    【解决方案1】:

    方法

    public function getId($model, $table, $value) {
        return $model::where($table, $value)->first()->id;
    }
    

    用法

    $id = getId('App\User', 'name', 'John Doe');
    

    从您的代码看来,您将其作为类方法。相反,您可以将其创建为全局帮助程序,以便您可以在任何地方访问它。

    【讨论】:

      【解决方案2】:

      我会创建一个特征

      <?php
      
      namespace App\Models\Traits;
      
      trait GetIdByNameTrait
      {
          public function scopeGetIdByName($query, $name)
          {
              return $query->where('name', $name)->first()->id;
          }
      }
      

      模型应该使用它:

      use Traits\GetIdByNameTrait;
      

      那么你可以在任何地方使用它;

      $id = Model::getIdByName($value);
      

      【讨论】:

        猜你喜欢
        • 2019-02-10
        • 1970-01-01
        • 2017-08-06
        • 2017-01-03
        • 1970-01-01
        • 1970-01-01
        • 2018-02-15
        • 2019-08-22
        • 1970-01-01
        相关资源
        最近更新 更多