Laravel Eloquent HasOne :: $ id Propriedade indefinida

Liam Potter

Eu tenho uma tabela de usuários, uma tabela de imagens e uma tabela de favoritos. Especifiquei os relacionamentos para cada um em meu banco de dados e sou capaz de acessar todas as imagens que um usuário carregou. No entanto, não consigo acessar as imagens que eles marcaram.

É assim que meus relacionamentos com bancos de dados se parecem: Base de dados

Consigo acessar os dados que desejo usando a entrada SQL no PHPMyAdmin, mas não consigo ao usar o Laravel: SQL

Usar o Laravel gera este erro: Erro

Este é meu modelo de usuário:

<?php
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
use Cartalyst\Sentry\Users\Eloquent\User as SentryUserModel;

class User extends SentryUserModel implements UserInterface, RemindableInterface {

    public $activated = true;

    public function getAuthIdentifier() {
        return $this->getKey();
    }

    public function getAuthPassword() {
        return $this->password;
    }

    public function getRememberToken() {
        return $this->remember_token;
    }

    public function setRememberToken($value) {
        $this->remember_token = $value;
    }

    public function getRememberTokenName() {
        return 'remember_token';
    }

    public function getReminderEmail() {
        return $this->email;
    }

    public function images() {
        return $this->hasMany('image', 'poster_id', 'id');
    }

    public function bookmarks() {
        return $this->hasMany('bookmark', 'bookmarker_id', 'id');
    }

}

Este é o meu modelo de imagem:

<?php

class Image extends Eloquent {

    public function poster() {
        return $this->belongsTo('user', 'poster_id', 'id');
    }

}

Este é o meu modelo de favoritos:

<?php

class Bookmark extends Eloquent {

    public $timestamps = false;

    public function bookmarker() {
        return $this->belongsTo('user', 'bookmarker_id', 'id');
    }

    public function image() {
        return $this->hasOne('image', 'image_id', 'id');
    }

}

Esta é a visão em que o erro está sendo lançado:

@extends('master')

@section('content')
<!-- Page Content -->
<header class="navbar navbar-inverse" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle Navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a href="/" class="navbar-brand">Egami</a>
        </div>
        <div class="collapse navbar-collapse">
            <ul class="nav navbar-nav navbar-right">
                @if(!Sentry::check())
                <li>
                    <a href="#" data-toggle="modal" data-target="#login-modal">Login</a>
                </li>
                <li>
                    <a href="#" data-toggle="modal" data-target="#signup-modal">Signup</a>
                </li>
                @endif
                @if(Sentry::check())
                @if(Sentry::getUser()->id == $user->id)
                <li class="active">
                @else
                <li>
                @endif
                    <a href="/profile/{{ Sentry::getUser()->id }}">Profile</a>
                </li>
                <li>
                    <a href="/logout">Logout</a>
                </li>
                @endif
            </ul>
        </div>
    </div>
</header>
<div class="container" id="profile">
    <div class="row">
        <div class="tac col-md-3">
            <img src="/img/{{ $user->profile_image }}" alt="{{ $user->username }}'s Profile Image">
        </div>
        <div class="tal col-md-8">
            <h2>{{ $user->username }}</h2>
        </div>
    </div>
    <div class="row">
        <div class="col-md-12">
            <div class="navbar navbar-inverse" role="navigation">
                <ul class="nav navbar-nav navbar-center">
                    <li>
                        <a href="{{ URL::action('ProfileImageController@show', $user->id) }}">Uploaded Images</a>
                    </li>
                    <li class="active">
                        <a href="{{ URL::action('ProfileBookmarkController@show', $user->id) }}">Bookmarked Images</a>
                    </li>
                </ul>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-md-12">
            <div class="row">
                <?php
                    $bookmarks = $user->bookmarks()->orderBy('id', 'DESC')->simplePaginate(15);
                ?>
                @foreach($bookmarks as $bookmark)
                    <div class="col-md-4 user-image">
                        <a href="{{ URL::action('ImageController@show', $bookmark->image()->id) }}">
                            <img src="/uimg/{{ $bookmark->image()->id }}.png" alt="{{ $bookmark->image()->title }}">
                        </a>
                    </div>
                @endforeach
            </div>
            <div class="row">
                <div class="container">
                    {{ $bookmarks->links() }}
                </div>
            </div>
        </div>
    </div>
</div>
<footer class="navbar-fixed-bottom">
    <div class="container">
        <p>
            Copyright &copy; Egami {{ date('Y') }}
        </p>
    </div>
</footer>
@stop

@section('scripts')

@stop
Robbie

Experimente isto:

<a href="{{ URL::action('ImageController@show', $bookmark->image->id) }}">
    <img src="/uimg/{{ $bookmark->image->id }}.png" alt="{{ $bookmark->image->title }}">
</a>

Removidos parênteses $ bookmark-> imagem () -> id para $ bookmark-> imagem-> id.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Propriedade indefinida no Laravel usando Eloquent

Erro de relacionamento do Laravel: Propriedade indefinida: Illuminate \ Database \ Eloquent \ Collection :: $ id na linha 1

Erro de relacionamento do Laravel: Propriedade indefinida: Illuminate \ Database \ Eloquent \ Collection :: $ id na linha 1

Laravel 5.8: Propriedade indefinida: Illuminate \ Database \ Eloquent \ Relations \ BelongsToMany :: $ usr_id

Propriedade indefinida do Laravel: stdClass :: $ id error

Laravel: Propriedade indefinida: Illuminate \ Database \ Eloquent \ Relations \ HasMany :: $ game

Propriedade indefinida: Illuminate \ Database \ Eloquent \ Builder :: $ password no Laravel

Propriedade indefinida: Illuminate \ Database \ Eloquent \ Collection :: $ name Laravel 5.3

Propriedade indefinida em uma relação "hasOne"

Propriedade indefinida: Illuminate \ Support \ Collection :: $ id no Laravel 5.2

Id da propriedade indefinida Vue ao usar o Laravel Echo

Propriedade indefinida: Illuminate \ Database \ Eloquent \ Builder :: $ where (city_id, 1)

Propriedade indefinida do Laravel no trabalho

Anexando um modelo hasOne a outro modelo Laravel / Eloquent sem especificar id

Laravel and Eloquent saving relationship on the hasOne side

Laravel Eloquent HasMany / HasOne Additional On Clauses

Propriedade indefinida: Mockery_3_App_Repositories_ArticleRepositoryInterface :: $ id no teste de unidade laravel

Propriedade indefinida: Illuminate \ Database \ MySqlConnection :: $ Id

Laravel - Propriedade indefinida: stdClass - consulta de pesquisa

Erro de `propriedade indefinida` em tarefas laravel

Relacionamento da categoria no laravel Propriedade indefinida: stdClass ::

Propriedade indefinida: App \ Ticket :: $ status laravel 7

Propriedade indefinida: App \ Services \ UserService :: $ app no Laravel

Erro de PHP: Propriedade indefinida: Illuminate \ Database \ Eloquent \ Collection :: $ retails

Propriedade indefinida: Illuminate \ Database \ Eloquent \ Relations \ BelongsTo :: $ center_name

Propriedade indefinida: Illuminate \ Database \ Eloquent \ Relations \ MorphMany :: $ title

Propriedade indefinida: Illuminate \ Database \ Eloquent \ Relations \ BelongsToMany :: $ balance

Laravel Eloquent - propriedade dinâmica

Undefined property: Illuminate\Database\Eloquent\Relations\HasOne::$user_id