Laravel中的模型绑定

时间:2018-03-28 12:47:25

标签: php laravel

我正在尝试使用Controller中的模型绑定从Laravel中的数据库获取数据,但它返回空$ task数组而不是

这是我的routes.php:

<?php

Route::get('/tasks','TasksController@index');
Route::get('/tasks/{task}','TasksController@show');

这就是TasksController:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Task;

class TasksController extends Controller
{
    public function show(Task $task)
    {
        return $task;
    }
}

2 个答案:

答案 0 :(得分:1)

 Route::get('/tasks/{id}','TasksController@show');

在路由模型绑定中,您可以传递路由中的id并在show function

中处理它
 public function show($id)
 {
    $task = Task::find($id);
    return $task;
 }

这将直接返回任务

答案 1 :(得分:0)

在没有看到其他代码的情况下很难回答,但是function index()看起来应该与此相似:

 public function index(Task $task)
    {
        $tasks = $task->all();

        return view('page', compact('tasks'));
    }

现在,假设您通过foreach循环收集ID,您的控制器代码应如下所示:

 public function show($id, Task $task)
    {
        $task = $task->find($id);

        return view('somePage', compact('task'));
    }

然后,这会将$task传递回您选择的页面,以显示您正在获得的特定任务。

您的路由很好,只要您通过:

<a href="/tasks/{{ $task->id}}">Something</a>

回到刀片内。