我可以得到模型的返回值吗?
在Codeigniter模型中使用Web3.php回调。
我尝试过,但是它是空的。
如何将回调中的return链接到CI Model return。
1.Model
use Web3\Web3;
use Web3\Contract;
use Web3\Providers\HttpProvider;
use Web3\RequestManagers\HttpRequestManager;
class Dapps_model extends CI_Model {
public function getItemFromDapps( $item_id ){
$at = "0xMYDAPPSADDRESS";
$json = file_get_contents( APPPATH . "/config/abi.json" , FALSE );
$json = json_decode( $json , TRUE );
$abi = json_encode( $json["abi"] );
$provider = new HttpProvider( new HttpRequestManager('https://ropsten.infura.io/MYAPIKEY') );
$contract = new Contract( $provider , $abi );
$contract->at( $at );
$contract->call( "getItemInfo" , $item_id , function( $err, $item ){
if ( $err !== null ) {
var_dump( $err->getMessage() );
exit;
}
// var_dump( $item ); Data exists.
return $item;
});
}
2.Controller
$item = $this->Dapps_model->getItemFromDapps( 2 );
var_dump( $item ) is Null
添加
我能够在Controller上获得Model返回值。 在Oluwafemi的帮助下。 这是正确的用法吗?
$returnData = null;
$contract->call( "getItemInfo" , $item_id , function( $err, $item ) use ( &$returnData ){
if ( $err !== null ) {
var_dump( $err->getMessage() );
exit;
}
// var_dump( $item ); Data exists.
//return $item;
$returnData = $item;
});
return $returnData;