2016-08-01 25 views
0

Ich bin ein Neuling auf Laravel 5.1, so habe ich ein einfaches Problem.Laravel Beziehung zwischen Benutzer und user_info Tabellen

Ich habe Benutzer Tabelle und user_info Tabelle. Wenn ich einen Benutzer anlege, möchte ich einen anderen Datensatz für die Tabelle user_info erstellen, und wenn ich einen Benutzer erhalte, möchte ich den Datensatz user_info erhalten, aber das tue ich nicht.

Codes sind unten.

<?php 
namespace App; 

use Illuminate\Foundation\Auth\User as Authenticatable; 

class User extends Authenticatable 
{ 

    protected $fillable = [ 
     'name', 'email', 'password', 
    ]; 

    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 

    public function profile() 
    { 
     return $this->hasOne('Http\Models\userInfo'); 
    } 
} 

dies ist userinfo Klasse

<?php 

namespace App\Http\Models; 

use Illuminate\Database\Eloquent\Model; 

class userInfo extends Model 
{ 
    protected $table = 'user_info'; 
} 

diese Begrüßungsseite ist

@extends('master') 

@section('content') 
<div class="container"> 
    <div class="row"> 
     <div class="col-md-10 col-md-offset-1"> 
      <div class="panel panel-default"> 
       <div class="panel-heading">Welcome</div> 

       <div class="panel-body"> 
        <pre>{{ dd(Auth::user()->profile) }}</pre> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
@endsection 

ich diese Fehlermeldung bekam

FatalErrorException in Model.php line 740: 
Class 'Http\Models\userInfo' not found 

wo mache ich falsch?

+0

Änderung 'return $ this-> hasOne ('Http \ Models \ userinfo');' auf 'return $ this-> hasOne (userinfo :: class) ; ' – ishadif

+0

@ishadif es ist Arbeit :). ich danke dir sehr . ich möchte etwas wie eins von ihnen lernen ist ich möchte ich ein Benutzermodell machen, wie kann ich das tun, und wenn ich das tue, kann ich Benutzer wie vorher bekommen? – Hanik

+0

Was meinen Sie damit, dass Sie ein Benutzermodell erstellen möchten? Wenn Sie mit eloquenten Modell beschäftigen, wird diese https://laravel.com/docs/5.2/eloquent Sie starten. für eloquente Modellbeziehung https://laravel.com/docs/5.2/eloquent-relationships – ishadif

Antwort

0

Es ist wegen der Namespace-Mismatch. Ersetzen Sie einfach:

return $this->hasOne('Http\Models\userInfo'); 

von

return $this->hasOne('App\Http\Models\userInfo'); 
+0

Sieht fast korrekt aus, aber braucht 'App \ Http \ Models \ userInfo' – user3158900

+0

@ user3158900 Ich bearbeitet es, danke für benachrichtigt mich so bald. – motia