【问题标题】:Im having a problem about generating QrCode我在生成二维码时遇到问题
【发布时间】:2022-01-27 12:26:50
【问题描述】:

我正在做一个需要生成二维码的项目。但似乎我的代码中遗漏了一些东西。

在我的控制器中:(注意:全名的 DB::RAW 有效,但 qr 无效。)

      if ($query != '') {
      $data = NewModel::where('id_no', '=', $query)
        ->select('reg_code as reg_code',
             DB::RAW("CONCAT(fname,' ',mname,' ',lname,' ',reg_code) as qr"),
             DB::RAW("CONCAT(fname,' ',mname,' ',lname) as fullname"))
    ->first();
       }

那么我就是这样调用二维码的:

if (count((array)$data) > 0) {
      $data = array(
      \QrCode::generate($data->qr));
       echo json_encode($data);
}

在我的模型中,这就是我调用数据库表的方式:

class NewModel extends Model
{
    protected $connection = 'Connection';
    protected $table = 'Table_Database';
    public $timestamps = false;
}

已编辑

【问题讨论】:

    标签: jquery laravel-8


    【解决方案1】:

    如果您有模型,为什么不使用访问器,如下所示:

    public function getQrCodeAttribute() {
      return "{$this->fname} {$this->mname} {$this->lname} {$this->regcode}";
    });
    

    然后正常查询你的数据库(即不要使用DB::raw()):

    $data = NewModel::where('id_no', '=', $query)->first()
    // Note: Replace `$model` and `Model` with the correct name for your Model
    

    然后生成您的二维码:

    QrCode::generate($data->qr_code);
    

    【讨论】:

    • $model = Model::first(); 应该放在哪里试试?在控制器中?或者我应该如何正确称呼它?我也应该把它放在模型上吗?
    • 无论您在哪里执行DB::raw() 语句,都执行Model::first()(或者您想查询您的表)。这通常在 Controller 中完成。我真的不能说更多,因为您在原始问题中没有提供足够的代码?
    • 如果您需要查看我的全部代码,我可以编辑它,我真的需要知道答案,我被卡住了 7 天
    • 是的,您可以edit your question 并包括您在哪里调用该代码以及如何将其发送到视图等。旁注,我今天将无法更新我的答案;但我稍后会回来查看。
    • 抱歉回复晚了。明天我会试试你给的代码!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多