PHP CodeIgniter错误。未定义属性[生成Qrcode]

问题描述 投票:0回答:1

嗨,我是一个新手,在codeigniter上使用额外的库(使用这个 图书馆所以这些错误真的让我不知所措,我的目标是做一个带有选项标签的表单输入(选项来自我的数据库),然后当我点击按钮时,它会自动生成qrcode。

它不显示任何明确的错误在html页面,所以我检查了该页面的控制台的错误如下。

jquery-3.4.1.js:9837 POST http://localhost/ikanku/Make_qr/save 500 (Internal Server Error)
send @ jquery-3.4.1.js:9837
ajax @ jquery-3.4.1.js:9434
(anonymous) @ make_qr:421
dispatch @ jquery-3.4.1.min.js:2
v.handle @ jquery-3.4.1.min.js:2

所以,我试图打开网络选项卡,看看是否有任何东西,我可以修复任何东西,但它让我困惑的bcs错误显示如下。

A PHP Error was encountered
Severity: Notice

Message: Undefined property: Make_qr::$Ciqrcode

Filename: core/Model.php

Line Number: 73

Backtrace:

File: C:\xampp\xampp\htdocs\ikanku\application\models\Make_qr_model.php
Line: 35
Function: __get

File: C:\xampp\xampp\htdocs\ikanku\application\controllers\Make_qr.php
Line: 24
Function: save

File: C:\xampp\xampp\htdocs\ikanku\index.php
Line: 315
Function: require_once

Ive been load the model name, controllers name globally through the autoload and internally through the parent::__construct(); 但它仍然错误如上,我真的需要任何人的建议建议我的问题,因为我还在学习如何在我的应用程序中做一个qrcode功能.现在使用CodeIgniter 3.1.11。

下面是我的控制器- Make_qr.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Make_qr extends CI_Controller {
    public function __construct()
    {
      parent::__construct();
      $this->load->model('Make_qr_model');
    }

    public function index()
    {
        $data['vessel'] = $this->db->query('select * from vessel order by vessel_name')->result_array();
        $data['port'] = $this->db->query('select * from port order by port_name')->result_array();
        $this->load->view('template/header');
        $this->load->view('template/sidebar');
        $this->load->view('qrcode/make_qr',$data);
        $this->load->view('template/footer');

    }

    public function save()
    {
        $this->Make_qr_model->save($this->input->post());
    }
}

这是我的模型 - Make_qr_model.php

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Make_qr_model extends CI_Model {
    function __construct()
    {
        parent::__construct();
        $this->load->library('Ciqrcode');
    }

    function random_strings($length_of_string){ 

        $str_result = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; //abcdefghijklmnopqrstuvwxyz
        return substr(str_shuffle($str_result),0, $length_of_string); 
    }
//save data function setelah qrcode di generate
    public function save($data){
        $data = array_replace($data,
            array_fill_keys(
                array_keys($data, ""),
                NULL
            )
        );
        if(isset($data['quantity']) && count($data['quantity'])>0){
            for($i=1;$i<=$data['quantity'];$i++){
                $r = $this->random_strings(6);

                $this->load->library('Ciqrcode');

                $config['cacheable']    = true;
                $config['cachedir']     = './assets/';
                $config['errorlog']     = './assets/';
                $config['imagedir']     = './assets/images/';
                $config['quality']      = true;
                $config['size']         = '1024';
                $config['black']        = array(224,255,255);
                $config['white']        = array(70,130,180);
                $this->Ciqrcode->initialize($config);

                $image_name=$r.'.png'; //buat name dari qr code sesuai dengan random string

                $params['data'] = $r; //data yang akan di jadikan QR CODE
                $params['level'] = 'H'; //H=High
                $params['size'] = 1024;
                $params['savename'] = FCPATH.$config['imagedir'].$image_name; //simpan image QR CODE ke folder assets/images/
                $this->Ciqrcode->generate($params); // fungsi untuk generate QR CODE

                $img = file_get_contents(FCPATH.$config['imagedir'].$image_name, "r");


                $base64 = 'data:image/png;base64,'.base64_encode($img);

                $data_insert = array();
                $data_insert['vessel_id'] = $data['vessel_id'];
                $data_insert['port_id'] = $data['port_id'];
                $data_insert['key'] = $r;
                $data_insert['qr'] = $base64;
                $this->db->insert('qr_vessel', $data_insert);

                $vessel = $this->db->query('select * from vessel where id='.$data['vessel_id'])->row_array();

                echo "<table class='table table-striped m-table'>
<tbody>
    <tr>
      <td width='30%' style='background-color:black'>
        <img src=".$base64.">
      </td>
      <td width='70%' style='vertical-align:top'>
        Vessel Name : ".$vessel['vessel_name']."<br>
        Vessel Company : ".$vessel['company']."<br>
        Fishing Gear : ".$vessel['fishing_gear']."<br>
      </td>
    </tr>
    <tr>
      <td align='center'>
        ".$r."
      </td>
      <td align='center'></td>
    </tr>
</body>
</table>";
            }
            $notif['x'] = 'ok';
        }else{
            $notif['x'] = 'error';
            die('error');
        }

        return;

    }
}
?>

这是我的看法 make_qr.php

<section class="content">
<form role="form" name="frm" action="<?=site_url('Make_qr/save')?>" method="post" id="frm">
<div id="container">
    <h1>Generate Fishing QR</h1>

    <div id="body">
        <table class="table table-striped m-table">
          <tbody>
            <tr>
              <td>Vessel</td>
              <td>
                <select id='vessel_id' name='vessel_id' style="width:250px" >
                    <option value="">Pilih</option>
                    <?php
                    foreach($vessel as $row){
                    ?>
                      <option value="<?=$row['id_vessel']?>"><?=$row['vessel_name']?> - <?=$row['company']?></option>
                    <?php
                    }
                    ?>
                </select>
              </td>
            </tr>

            <tr>
              <td>Port Departure</td>
              <td>
                <select id='port_id' name='port_id' style="width:250px" >
                    <option value="">Pilih</option>
                    <?php
                    foreach($port as $row){
                    ?>
                      <option value="<?=$row['id_port']?>"><?=$row['port_name']?></option>
                    <?php
                    }
                    ?>
                </select>
              </td>
            </tr>

            <tr>
              <td>QR Quantity</td>
              <td>
                <select id='quantity' name='quantity'>
                    <option value="">Pilih</option>
                    <?php
                    for($i=1;$i<=20;$i++){
                    ?>
                      <option value="<?=$i?>"><?=$i?></option>
                    <?php
                    }
                    ?>
                </select>
              </td>
            </tr>
          </tbody>
        </table>
        <div class="col-lg-3 m--margin-bottom-10-tablet-and-mobile">
            <span id='loading' style="display:none"><img src="<?php echo base_url(); ?>Assets/assets/images/ajax-loader_dark.gif"></span>
            <button type="button" class="btn btn-info" id="save">Generate</button>
        </div>
        <br>
        <div id='qrs'></div>
    </div>
</section>

我为我的错误的长篇描述而道歉,如果我能从这里得到一些建议& 建议,对我来说将是如此重要。

谢谢

php codeigniter qr-code
1个回答
0
投票

Change model name Make_qr_model to Makeqr_model

Load library $this->load->model('Makeqr_model');

Load CodeIgniter-PHP-QR-Code library properly; clone git repo and paste folder inside application/libraries

Make sure GD2 PHP extension installed

<?php 
defined('BASEPATH') OR exit('No direct script access allowed');



class QRGenerator extends CI_Controller {
    function __construct(){
       Parent::__construct();
    }


    public function generate(){
        $this->load->library('ciqrcode');

        $params['data'] = 'This is a text to encode become QR Code';
        $params['level'] = 'H';
        $params['size'] = 10;
        $params['savename'] = FCPATH.'tes.png';
        $this->ciqrcode->generate($params);

        echo '<img src="'.base_url().'test.png" />';
    }

}    


enter image description here

Codeigniter模型参考 点击

希望对你有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.