嗨,我是一个新手,在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>
我为我的错误的长篇描述而道歉,如果我能从这里得到一些建议& 建议,对我来说将是如此重要。
谢谢
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" />';
}
}
Codeigniter模型参考 点击
希望对你有所帮助