显示表数据而无需用户验证

时间:2018-11-16 22:12:27

标签: php laravel laravel-5

我正在研究事件留言板。我可以按每个用户自己的帖子显示表数据。但是我也想显示所有帖子。我把它写为$ tasksall,但是没有用。有人可以教我怎么了吗?

AController.php

public function index()
{

    $tasks = Auth::user()
        ->tasks()
        ->orderBy('is_complete')
        ->orderByDesc('created_at')
        ->paginate(5);

    $tasksall =
        ->tasks()
        ->orderBy('is_complete')
        ->orderByDesc('created_at')
        ->paginate(5);

    return view('tasks', [
        'tasks' => $tasks, 'tasksall' => $tasksall
    ]);
}

Task.php (模型)

class Task extends Model
{

    protected $casts = [
        'is_complete' => 'boolean',
    ];


    protected $fillable = [
        'title',
        'is_complete',
    ];

    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

AController.php 我添加了这段代码

 public function person()
    {
        return $this->belongsTo('App\Models\Task');
    }

    public function getData()
    {
        return $this->id . ':'/ $this->person->name.')';
    }

index.blade.php 我添加了这段代码

{{ $task2->getData() }}

1 个答案:

答案 0 :(得分:1)

您只需编写一个查询即可使用雄辩地获取所有任务来获取所有任务。

$tasksall = Task::all();

看看this链接。

对于您来说,我也认为问题是您正在从User模型中获取任务,因此您$ task将只包含与特定用户相关的任务,因为您与belongsTo具有任务关系用户。

根据您的情况,从name中获得User中的task

//任务模型

class Task {

  public function user()
    {
        return $this->belongsTo(User::class, 'user_id');
    }
}

然后您可以在控制器中像这样查询。

$task = Task::find($id);

$name = $task->user->name;