【发布时间】:2018-02-23 02:17:48
【问题描述】:
当我在 home.blade.php 中单击“配置文件”时出现错误,“缺少 App\Http\Controllers\ProfileController::show() 的 1 个参数”如何解决此错误?
home.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="sidebar col-md-3">
<div class="panel panel-default">
<div class="panel-heading">Navigation</div>
@if (Auth::user()->type === "Admin")
<ul class="list-group">
<li class="list-group-item"><a href="{{ URL::to('users') }}">Users</a></li>
<li class="list-group-item"><a href="{{ URL::to('adlogs') }}">Logs</a></li>
</ul>
@elseif (Auth::user()->type === "Employee")
<ul class="list-group">
<li class="list-group-item"><a href="{{ URL::to('profile') }}">Profile</a></li>
<li class="list-group-item"><a href="{{ URL::to('logs') }}"> Logs</a></li>
</ul>
@else
@endif
</div>
</div>
<div class="col-md-9">
<div class="panel panel-default">
<div class="panel-heading">Dashboard</div>
<div class="panel-body">
You are logged in!
</div>
</div>
</div>
</div>
</div>
@endsection
路线:
Route::get('/home', 'HomeController@index');
Route::resource('/profile', 'ProfileController@show');
HomeController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('home');
}
}
ProfileController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
class ProfileController extends Controller
{
public function index()
{
}
public function create()
{
//
}
public function store(Request $request)
{
//
}
public function show($id)
{
$users = User::find($id);
return view('profile.index',compact('users'));
}
public function edit($id)
{
//
}
public function update(Request $request, $id)
{
//
}
public function destroy($id)
{
//
}
}
这是 Profile 文件夹的 index.blade.php。这应该是输出。
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="table-responsive">
<table class="table table-striped">
<thead>
<td>User ID</td>
<td>First Name</td>
<td>Last Name</td>
<td>Email</td>
<td>Job Title</td>
<td>Contact No</td>
<td>ABN Number</td>
<td>Status</td>
<td>Type</td>
<td>Action</td>
</thead>
<tbody>
@foreach($users as $value)
<tr>
<td>{{ $value->id }}</td>
<td>{{ $value->first_name }}</td>
<td>{{ $value->last_name }}</td>
<td>{{ $value->email }}</td>
<td>{{ $value->job_title }}</td>
<td>{{ $value->contact_no }}</td>
<td>{{ $value->abn_number }}</td>
<td>{{ $value->status }}</td>
<td>{{ $value->type }}</td>
<td>
<a href="{{ URL::to('users/' . $value->id . '/edit') }}">
Edit
</a>
<a href="{{ URL::to('users/' . $value->id . '/destroy') }}">
Delete
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
@endsection
如何解决这个问题?
【问题讨论】:
-
为什么选择 laravel 5.3?当前版本是 5.5
-
这是客户想要的
-
如何解决这个问题?
-
5.3 于 2016 年 8 月 23 日发布,很久以前
-
为每个方法定义单独的路由,而不是使用路由资源
标签: php laravel laravel-5 laravel-5.3