Предполагая, что
- таблица пользователей содержит информацию о пользователях с идентификатором
- таблица сообщений содержит подробные сообщения с идентификатором user_id
- userpost содержит информацию о пользователях исообщения, к которым они имеют доступ с user_id и post_id.
коды
//users.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class users extends Model
{
public function posts()
{
return $this->hasMany("App\posts");
}
public function userPosts()
{
return $this->hasMany("App\userpost");
}
}
модель сообщения
//posts.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class posts extends Model
{
public function user()
{
return $this->belongsTo("App\users");
}
}
модель userpost (здесь пользователь и сообщение о том, что к ним обращаются)
//userpost.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class userpost extends Model
{
public function users(){
return $this->hasMany("App\users");
}
public function posts()
{
return $this->hasMany("App\posts","id","post_id");
}
}
контроллер может быть записан как
//PostViewController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\posts;
use App\users;
use App\userpost;
class PostViewController extends Controller
{
public function view()
{
$user_id = 2; //user_id of the user you want to view
$posts= userpost::where('user_id', $user_id)->get();
//return $posts; you can return $posts and view it on "view" by using foreach as shown below
foreach($users as $user)
{
return $user->posts;//posts is the function made in model.
}
}
}
здесь цикл foreach выполняется только один раз, чтобы получить только один пост, так как return завершает цикл.Это только для того, чтобы показать, как получить данные поста, что можно сделать, чтобы получить данные