2016-11-08 2 views
1

это мои сообщения таблицаПопытка получить свойство не-объекта в Laravel 5.2

<?php 
    use Illuminate\Database\Schema\Blueprint; 
    use Illuminate\Database\Migrations\Migration; 
    class CreatePostsTable extends Migration 
    { 

    public function up() 
    { 
     Schema::create('posts', function (Blueprint $table) { 
      $table->increments('id'); 

      $table->integer('user_id')->unsigned(); 
      $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); 

      $table->integer('prf_id')->unsigned(); 
      $table->foreign('prf_id')->references('id')->on('profiles')->onDelete('cascade'); 

      $table->longText('status'); 
      $table->timestamps(); 
     }); 
    } 


    public function down() 
    { 
     Schema::drop('posts'); 
    } 
} 

это мое сообщение модель:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Post extends Model 
{ 
    protected $table='posts'; 
    protected $fillable = ['status']; 


    protected $hidden = []; 

    public function profile(){ 
     return $this->belongsTo('App\Profile'); 
    } 

    public function user(){ 
     return $this->belongsTo('App\User'); 
    } 


} 

это профиль модели

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Profile extends Model 
{ 
    protected $table='profiles'; 

    protected $fillable = ['user_id','name','position','roles','username','college','phone','location','graduation','skill']; 


    protected $hidden = []; 

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

} 

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

<?php 

namespace App; 

use Illuminate\Foundation\Auth\User as Authenticatable; 

class User extends Authenticatable 
{ 

    protected $fillable = [ 
     'fname','lname', 'email','sex', 'password','user_id','roles' 
    ]; 

    /** 
    * The attributes that should be hidden for arrays. 
    * 
    * @var array 
    */ 
    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 


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

} 

при попытке {{$ СТАТУС> user-> Fname}} this.its показать правильное значение, но когда я пытаюсь {{$ СТАТУС> profile-> username}} это, каждый раз, когда он показывает мне Попытка получить свойство не-объекта (Вид: C: \ xampp \ htdocs \ abc \ resources \ views \ pages \ profile.blade.php) i действительно не знаю почему :(

+1

Показать код, где вы выбираете '$ status'? –

+0

'public function myprofile (Request $ request) { $ id = $ request-> prf; $ user = Пользователь :: where ('id', '=', $ id) -> first(); $ u_id = $ user-> user_id; $ all = Профиль :: where ('id', '=', $ id) -> first(); $ tasks = Task :: where ('user_id', '=', $ u_id) -> get(); $ user = Пользователь :: where ('id', '=', $ id) -> first(); $ statuses = Post :: all(); return view ('pages.profile', compact ('all', 'tasks', 'user', 'statuses')); } ' – leo

+0

@leo как изменение в вопросе пожалуйста. – apokryfos

ответ

1

В вашем классе Post попробуйте ввести следующий код:

public function profile(){ 
    return $this->belongsTo('App\Profile', 'prf_id'); 
} 
+0

спасибо, что так много работает. – leo

+0

С удовольствием помогите. Если этот ответ решит вашу проблему, отметьте его как принятый. –

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