1

app.pagination で zend paginator を使用していますが、うまく機能しますが、このエラーが発生します。非オブジェクトのプロパティを取得しようとしています

$user = new Zend_Session_Namespace('user');
$user_id =$user->user_id;
 $DB = Zend_Db_Table_Abstract::getDefaultAdapter();
 $select = $DB->select()
     ->from(array('p' => 'phone_service'))
     ->join(array('u' => 'user_preferences'), 'u.phone_service_id = p.phone_service_id')
     ->where('u.user_preferences_name = ?', 'is_user_package_active')
     ->where('p.user_id = ?', $user_id);

     $adapter = new Zend_Paginator_Adapter_DbSelect($select);
     $paginator = new Zend_Paginator($adapter);
     $this->view->paginator=$paginator;

私の見解では、私はそうしています

 foreach($this->paginator as $record){
 <td><?php echo $record->phone_service_name;?></td>
  <td><?php echo $record->phone_service_type;?></td>
  <td ><?php echo $record->phone_service_Duration;?></td>}

次のエラーが発生しています

Notice: Trying to get property of non-object

私がそうするとき、私は私の見解で

var_dump($this->paginator);
 [_tableCols:protected] => Array
                    (
                    )
there are no data of columns

ヒントPLZ???

4

2 に答える 2

1

クエリが空のレコード セットを返しているようです。デバッグするには、次を試してください。

$select = $DB->select()
     ->from(array('p' => 'phone_service'))
     ->join(array('u' => 'user_preferences'), 'u.phone_service_id = p.phone_service_id')
     ->where('u.user_preferences_name = ?', 'is_user_package_active')
     ->where('p.user_id = ?', $user_id);
echo $select;
die();

これにより、mysqlに送信された正確なクエリが出力され、それをphpmyadmin/heidisqlまたはmysqlの管理に使用するものにコピーアンドペーストして、期待どおりに返されるかどうかを確認できます。そこから、クエリを機能させてから、php コードに移植することができます。

于 2012-02-07T15:05:42.093 に答える
0
make it sure column names in DB and in your code are same.mean spelling are same
or $record['phone_service_name']
 once i got this error and the problem was i miss spell column name hope it helps
于 2012-02-27T11:22:21.473 に答える