【问题标题】:Paginate data from relationship model in Laravel在 Laravel 中对关系模型中的数据进行分页
【发布时间】:2018-10-01 06:27:28
【问题描述】:

抱歉,如果标题不完全有意义...我不确定模型链接的确切术语是否是其控制器中的关联数据。

我正在尝试使用用户创建的帖子对表格进行分页。

我之前设法对其进行了分页,但帖子表中没有 user_id。但我已将user_id 添加到posts 表中,并运行运行正常的迁移。

以下是我的Post 模型:

    namespace App;

    use Illuminate\Database\Eloquent\Model;

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

这是我的User 模型:

    namespace App;

    use Illuminate\Notifications\Notifiable;
    use Illuminate\Foundation\Auth\User as Authenticatable;

    class User extends Authenticatable
    {
        use Notifiable;
        protected $fillable = ['name', 'email', 'password',];

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

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

这是后控制器的相关部分:

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;
    use App\Post;
    use App\User;
    use Session;
    use Carbon\Carbon;

    class PostController extends Controller
    {

      public function index()
      {

        $user_id = auth()->user()->id;
        $user = User::find($user_id);

        return view('posts.index')->with('posts', $user->posts);
      }

我认为这只是将->paginate(5) 附加到PostController 中的$user 的情况,但这似乎不起作用。

我得到以下信息:

Undefined property: Illuminate\Pagination\LengthAwarePaginator::$posts

我尝试在 posts.index 视图中包含 {!! $posts->links() !!} 之前的 @foreach 但这给出了:

Undefined property: Illuminate\Pagination\LengthAwarePaginator::$posts

我正在尝试通过创建这个 crud 应用程序来学习 Laravel 基础知识,并尝试将两个教程结合在一起,但我显然遗漏了一些东西。

【问题讨论】:

    标签: php laravel pagination laravel-5.6


    【解决方案1】:

    您可以像这样在关系上调用->paginate()(我也删除了不必要的用户查询,因为auth()->user() 已经执行它):

    public function index()
    {
        $user = auth()->user();
        $posts = $user->posts()->paginate();
        // Or with 1 line: $posts = auth()->user()->posts()->paginate();
        return view('posts.index')->with('posts', $posts);
    }
    

    【讨论】:

      猜你喜欢
      • 2015-08-10
      • 2013-04-03
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-22
      • 2014-11-23
      • 2019-10-02
      相关资源
      最近更新 更多