我部署我的應用程序,以我的生產環境沒有運行按預期它不工作。我已經將問題縮小到了我的控制器中該循環內的一行。Laravel方法attributesToArray()對生產
foreach($temp_table_data as $a_payment) {
//array_push($payments, $a_payment->payment); //big collection object
array_push($payments, $a_payment->payment->first()->attributesToArray()); //smaller object
}
我得到的錯誤是call to a member function attributesToArray() on a non object
。這看起來很瘋狂,因爲 - 正如那句老話 - 它在我的機器上運行良好。
我的dev。環境是PHP 5.5.21上的Ubuntu trusty64,我的作品是RedHat Linux PHP 5.5.11。我認爲這些差異是非常小的(也許我錯了?)。
如果我做了print_r($temp_table_data()
那麼我會收到一個大集合。兩臺服務器上都一樣。所以在某個時候它只是停止喜歡payment
(這是一種方法)或first()
這是我的TempTable.php模型與付款方法的部分;
public function payment(){
return $this->hasMany('App\Models\Payment', 'Vendor ZIP', 'postcode');
}
和我的Payment.php
模型(它的一部分);
class Payment extends Model {
protected $table = 'headquarters_data';
public function tempTable()
{
return $this->belongsTo('App\Models\TempTable', 'postcode', 'Vendor ZIP');
}
也許考慮'firstOrFail()'的情況下有支付任何結果() –