Description: call toJson method on laravel model caused unlimited loop
console.php
use App\Models\xsqOrder;
use Illuminate\Foundation\Inspiring;
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->describe('Display an inspiring quote');
Artisan::command('ddd', function () {
$obj = xsqOrder::find("xxx");
echo $obj->toJson();
});
xsqOrder.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class xsqOrder extends Model
{
protected $table = "xsq_order";
protected $with = ["orderEx"];
protected $primaryKey = "orderId";
public static $snakeAttributes = false;
public function orderEx()
{
return $this->hasOne(XsqOrderEx::class, "orderId", "orderId");
}
}
xsqOrderEx.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class xsqOrderEx extends Model
{
protected $table = "xsq_order_ex";
protected $appends = ["orderIdEx"];
public static $snakeAttributes = false;
public function order()
{
return $this->belongsTo(xsqOrder::class, "orderId", "orderId");
}
public function getOrderIdExAttribute()
{
return $this->order->orderId;
}
}
table xsq_order and xsq_order_ex has the same field orderId
xsqOrderEx, I only want to serialize field oderIdEx but it serialized field 'order' it cause the bug occur
Description: call
toJson
method on laravel model caused unlimited loopconsole.php
xsqOrder.php
xsqOrderEx.php