2015-10-20 5 views
1

Мы создаем приложение для школы, в котором пользователи могут загружать проекты. У меня есть страница со всеми показанными на ней проектами. Но я хочу показать загрузчика проекта.Laravel 5.1 Выберите пользователя пост проекта с внешним ключом

Моя модель проекта:

class Project extends Model 
{ 
    protected $fillable = [ 
    'title', 
    'tags', 
    'summary', 
    'published_at' 
]; 
} 

Моя модель Пользователь:

class User extends Model implements AuthenticatableContract, 
           AuthorizableContract, 
           CanResetPasswordContract 
{ 
use Authenticatable, Authorizable, CanResetPassword; 

/** 
* The database table used by the model. 
* 
* @var string 
*/ 
protected $table = 'users'; 

/** 
* The attributes that are mass assignable. 
* 
* @var array 
*/ 
protected $fillable = ['name', 'email', 'password']; 

/** 
* The attributes excluded from the model's JSON form. 
* 
* @var array 
*/ 
protected $hidden = ['password', 'remember_token']; 

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

Моя миграция create_projects_table

public function up() 
{ 
    Schema::create('projects', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->integer('user_id')->unsigned(); 
     $table->foreign('user_id')->references('id')->on('users'); 
     $table->string('title'); 
     $table->string('tags'); 
     $table->string('summary'); 
     $table->string('file_name'); 
     $table->timestamp('published_at'); 
     $table->timestamps(); 
     $table->softDeletes(); 
    }); 
} 

мой взгляд, и как отобразить все проекты:

@foreach ($projects as $project) 
<article> 
    <h2><a href="projects/{{ $project->id }}">{{ $project->title }}</a></h2> 
    <span>{{ $project->tags }}</span><br/> 
    <img src="uploads/projects/{{ $project->file_name }}"> 
</article> 
@endforeach 

Итак, в статье я хотел бы добавить что-то вроде «Uploaded by: username». Как выбрать имя пользователя из таблицы пользователей с помощью внешнего ключа в моей таблице проектов? Модель

ответ

1

Проекта:

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

добавить на зрения $projects переменные и попробовать:

@foreach($projects as $project) 
{ 
    <article> 
     <h2><a href="projects/{{ $project->id }}">{{ $project->title }}</a></h2> 
     <span>{{ $project->tags }}</span><br/> 
     <img src="uploads/projects/{{ $project->file_name }}"> 
     <p>Uploaded by: {{ $project->user->name }}</p> 
    </article> 
} 
+0

спасибо @whyguy за ваше предложение – kotapeter

+0

Спасибо друга! –

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