私のライブ環境への最近のアップデートの後、大文字と小文字を区別しないモデル名についていくつかのエラーがありましたが、さて、このアップデートの約1週間後、私は突然、関連オブジェクトにアクセスしようとしている間に "非オブジェクトのプロパティ"に関するエラーを受け取ります。ここ は私のモデルです:Laravel:奇妙な関係が突然動作を停止しました
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class products extends Model {
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'v_products_2';
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class order extends Model {
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'v_customers_orders';
public function getProduct(){
return $this->belongsTo('App\products', 'product_id', 'product_id');
}
}
私が正しくセットアップ私のルートやミドルウェアをしましたし、このようにプロパティにアクセスしようとした後、「非オブジェクト」エラーになります:
echo $orders->getProduct->product_id;
しかし、この正確に同じコードは2時間前と同じように働き、今数ヶ月間働いています。それを除いて、このコードは私のWindows Homestead環境でも動作し、トラブルシューティングを非常に難しくしています。このエラーをローカルで再現できる唯一の方法は、モデルからgetProduct関数を削除することでした。しかし、ライブでは、私はどちらの場合も同じ動作をします。
製品モデルでHasManyリレーションを実行する必要があるかもしれません。それがクリアされるかどうかを確認してください –
クエリをhasManyに変換しようとすると、私のローカル環境でDB全体をダウンロードしてインポートすると、エラー。これはDBの問題です。正確な原因は何か – m33ts4k0z
私はこのトピックを議論の対象外としています。なぜなら、プログラミングではなく、データベースに関するものだからです。 [データベースの質問](dba.stackexchange.com)用の別のSEサイトがあります。 –