2016-01-06 5 views
0

Привет, я новичок в laravel. Я пытаюсь построить отношения между двумя таблицами.Laravel Вопрос о проблемах с жильем

метод в моем контроллере

public function show() 
    { 
     $users = users::all(); 
     dd($users->art); 
     die; 
     return View('test')->with('ime'); 
    } 

модель пользователя

namespace App; 

use Illuminate\Database\Eloquent\Model; 
use App\Articles; 

class users extends Model 
{ 
    protected $fillable =['name','email','password']; 
    public function setNameAttribute($data) 
    { 
     $this->attributes['name'] = strtolower($data).'Duca'; 
    } 

    public function scopeNametor($query) 
    { 
     $query->where('name','ero'); 
    } 

    public function art() 
    { 
     return $this->hasMany('App\Articles'); 
    } 
} 

статья Модель

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Articles extends Model 
{ 
    public function users() 
    { 
     return $this->belongsTo('App\users'); 
    } 
} 

Я установил внешний ключ

user.id to articles.user_id 

Также я добавляю индекс в поле articles.user_id.

Но я получаю ошибку

Undefined property: Illuminate\Database\Eloquent\Collection::$art 

Как-то Laravel не признают искусство как метод, но рассматривать его как собственность. Что-то я делаю неправильно. Я стараюсь подобным образом, но не повезло

dd($users->art()-get()->toArray()); 

Где может быть проблема. я думаю, что это может быть легко решить

+0

come let resovle this together –

+0

Кажется, у меня есть только дата с одной таблицы пользователей –

+0

как-то я получаю Неизвестный столбец 'articles.users_id' in 'where ... i dont have users_id поле где-нибудь –

ответ

0

Да, я нашел ошибку, которую вы не можете использовать $ users = users :: all(); он вернет целую коллекцию попробовать что-то вроде этого $users = users::first();

0

Это ожидаемое поведение, как указано в Laravel Docs:

После того, как связь определена, мы можем получить связанную запись с использованием динамических свойств красноречивы в. Динамические свойства позволяют получить доступ к функциям отношения, как если бы они были свойства, определенные в модели

Laravel - Eloquent: Relationships

Пример, приведенный:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class User extends Model 
{ 
    /** 
    * Get the phone record associated with the user. 
    */ 
    public function phone() 
    { 
     return $this->hasOne('App\Phone'); 
    } 
} 

Чтобы получить доступ к отношению телефона:

$phone = User::find(1)->phone; 
+0

как-то я получаю Неизвестный столбец «articles.users_id» в «где ... у меня нет поля user_id в любом месте –

+0

@AleksandraStus Создано ли поле user_id для вашей таблицы статей? Это должно быть в вашей миграции статей: '$ table-> integer ('user_id') -> unsigned();' –

+0

yes i have in db –

Смежные вопросы