Итак, это мой метод отношения к файловой модели:
public function User()
{
return $this->belongsTo(
User::class,
'user_id',
'id'
);
}
public function modify()
{
return $this->belongsTo(
User::class,
'update_id',
'id'
);
}
Это мой код миграции модели
public function up()
{
Schema::create('files', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->constrained()->cascadeOnUpdate()->cascadeOnDelete();
$table->foreignId('update_id')->nullable()->references('id')->on('users');
$table->foreignId('division_id')->constrained()->cascadeOnUpdate();
$table->string('title');
$table->string('slug')->unique();
$table->text('details');
$table->timestamp('published_at')->nullable();
$table->timestamps();
});
}
Это мой код просмотра:
@foreach ($files as $key=>$file)
<tr>
<td>{{ $files->firstItem() + $key }}</td>
<td>{{ $file->title }}</td>
<td><a href = "{{ route('Files.index', ['division'=>$file->division->slug, 'byUser'=>$byUser]) }}">{{ $file->division->name }}</a></td>
<td>
@if (auth()->user()->id == 1)
<a href = "{{ route('Files.index', ['division'=>$division, 'byUser'=>$file->user->username]) }}">{{ $file->user->name }}</a>
@else
{{ $file->user->name }}
@endif
</td>
<td>{{ $file->created_at }}</td>
<td>
{{-- @foreach ($file->modify as $update) --}}
{{ dd($file->modify->name) }}
Это мой вид страницы после выполнения кода выше
после изменения этой строки:
{{ dd($file->modify->name) }}
к:
{{ ($file->modify->name) }}
я получил следующую ошибку:
ErrorException Попытка получить имя свойства не-объекта
Может показаться, что первый $file
в вашем массиве имеет набор отношений modify
, но в последующем $file
его нет. Либо выполните нулевую проверку, либо убедитесь, что связь всегда установлена.
спасибо за совет, теперь я могу назначить NULL, в представлении я проверяю, истинно ли отношение, используя @if ($file->modify)
Пожалуйста, используйте текст, а не изображения/ссылки, для текста, включая таблицы и ERD. Перефразируйте или процитируйте другой текст. Дайте только то, что вам нужно, и свяжите это со своей проблемой. Используйте изображения только для того, что не может быть выражено в виде текста или для дополнения текста. Включите легенду / ключ и объяснение с изображением. Как спроситьЦентр помощи