2015-12-31 4 views
1

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

upload.blade.php

<div id="templatemo_sidebar"> 
<tr> 
    <div id="login">logged in as :</div> 
</tr> 
@foreach($users as $users) 
<div id="img"> 
    <img src="{!! '/profiles/'.$users->filePath !!}">{{$users->filePath}} 
</div> 
@endforeach 
    {!! Form::open(['action'=>'[email protected]', 'files'=>true]) !!} 
    <div class="form-group"> 
     {!! Form::label('image', 'Choose an image') !!} 
     {!! Form::file('image') !!} 
    </div> 

    <div class="form-group"> 
     {!! Form::submit('Save', array('class'=>'btn btn-danger form-control')) !!} 
    </div> 

    {!! Form::close() !!} 
@foreach($profiles as $profile) 
    <div id="profile_sidebar"> 
     <tr> 
      <td>{{$profile->student_name}}</td> 
     </tr> 
     <tr> 
      <td>{{$profile->student_id}}</td> 
     </tr><br> 
     <tr> 
      <td>{{$profile->student_ic}}</td> 
     </tr> 
     <tr><br> 
      <td><mark>Status : {{$profile->status}}</mark></td> 
     </tr> 

     @endforeach 

    </div> 

ProfileController.php

public function store(Request $request) 
{ 
    $users = Auth::user(); 
    if($request->hasFile('image')) { 
     $file = Input::file('image'); 
     //getting timestamp 
     //$timestamp = str_replace([' ', ':'], '-', Carbon::now()->toDateTimeString()); 
     //$name = $timestamp. '-' .$file->getClientOriginalName(); 
     $name=$file->getClientOriginalName(); 
     $users->filePath = $name; 

     $file->move(public_path().'/profiles/', $name); 
    } 
    $users->save(); 
    $users = Auth::user(); 
    $users = Profile::where('student_id', $users->student_id)->get(); 
    $profiles = Profile::all(); 
    return view('profile', compact('users', 'profiles')); 
} 

}

profile.php

class Profile extends Model 
    { 
protected $table='profiles'; 
protected $fillable = ['student_id','student_name', 'program','faculty']; 


public function user() 
{ 
    return $this->belongsTo('users'); 
} 
public function setFirstNameAttribute($value) { 
    $this->attributes['faculty'] = ucfirst($value); 
} 
public function setLastNameAttribute($value) { 
    $this->attributes['program'] = ucfirst($value); 
} 
public function profilePicture(){ 
    return $this->belongsTo('User', 'student_id'); 
} 

}

+0

Какая линия в коде отображается ошибка для? – RCrowt

+0

Можете ли вы включить определение класса модели 'Profile'? –

+0

Я добавил свою модель профиля выше. ошибка возникает, когда я вызываю filePath для пользователей таблицы вместо профиля с сообщением «пытается получить свойство не-объекта». –

ответ

0

В своем первом Еогеасп вы должны использовать другую переменную для переборе коллекции пользователей, как это:

@foreach($users as $user) 
+0

Это основная причина получения ошибки; пытаясь получить свойство не-объекта. –

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