我正在尝试使用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;
}
}
答案 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>
回到刀片内。