Модель laravel не возвращает объект, даже если он загружен из базы данныхPhp

Кемеровские программисты php общаются здесь
Anonymous
Модель laravel не возвращает объект, даже если он загружен из базы данных

Сообщение Anonymous »

У меня есть отношение ClientAddress, определенное в laravel, как показано ниже
class Client extends Model
{
use HasFactory;

protected $keyType = 'string';

public $incrementing = false;
protected $fillable = [
'name',
'location',
'status',
];

public function address()
{
return $this->hasOne(ClientAddress::class);
}
}

class ClientAddress extends Model
{
use HasFactory;
public $timestamps = false;

protected $keyType = 'string';

public $incrementing = false;

protected $fillable = [
'street',
'zip',
];

public function client()
{
return $this->belongsTo(Client::class);
}
}

Я могу сохранить его в базе данных.
Когда я читаю его, как показано ниже, и распечатываю, я получаю адрес
public function getAddress(Request $request)
{
$client=Client::with('address')->find($request->id);
Log::info($client);
Log::info($client->address);
return ClientAddressResource::make($client->address);
}

первое значение журнала:

[2024-06-22 10:39:15] local.INFO: {"id":"12cf02ff-fff7-4b8d-8eb5-64d5328afc8b","name":"Клиент с адресом","location":"Дели","status":"OK","address":{"id ":"0b956710-3681-4042-96c2-877345167c46","street":"str1","street2":"str2","city":"какой-то город","штат":"stt","country" :"Индия","zip":"1234","client_id":"12cf02ff-fff7-4b8d-8eb5-64d5328afc8b"},"created_at":"2024-06-20T21:14:50.000000Z","updated_at" :"2024-06-20T21:14:50.000000Z"

второй журнал пуст

[2024-06-22 10:39:15] local.INFO:

последняя строка выдает ошибку

[2024-06-22 10:39:15] local.ERROR: Попытка прочитать свойство "улица" по нулевому значению {"userId":"981cfca3-46ed-47a7-91df -5424b563e723","Exception":"[object] (ErrorException(code: 0): попытка прочитать свойство "улица" по нулевому значению в .....

Я пробовал много ответов в Google, но ни один из них не говорит о чтении объекта и преобразовании в json.
миграции:
Schema::create('clients', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('name');
$table->string('location');
$table->string('status');
});

Schema::create('client_addresses', function (Blueprint $table){
$table->uuid('id')->primary();
$table->string('street');
$table->string('zip');
$table->foreignUuid('client_id')->constrained();
});


Подробнее здесь: https://stackoverflow.com/questions/786 ... m-database

Вернуться в «Php»