【发布时间】:2021-04-29 21:13:15
【问题描述】:
我真的已经有几个小时了,显然根据我所读的内容很容易,但我无法意识到。我将我的代码结构传递给您,以便您查看它,最后我会告诉您问题所在以及它引发的错误。
控制器:角色控制器
<?php
namespace App\Http\Controllers;
use App\Models\Role;
use App\Http\Requests\Role\StoreRequest;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Http\Request;
class RoleController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
echo 'Vista index de Roles';
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('theme.backoffice.pages.role.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(StoreRequest $request, Role $role)
{
$role = $role->store($request);
return redirect()->route('backoffice.role.show'.$role);
}
/**
* Display the specified resource.
*
* @param \App\Models\Role $role
* @return \Illuminate\Http\Response
*/
public function show(Role $role)
{
return view('theme.backoffice.pages.role.show', [
'role' => $role,
]);
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\Role $role
* @return \Illuminate\Http\Response
*/
public function edit(Role $role)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\Role $role
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Role $role)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\Role $role
* @return \Illuminate\Http\Response
*/
public function destroy(Role $role)
{
//
}
}
web.php/routes
Auth::routes(['verify' => true]);
//BACKOFFICE
Route::group(['middleware'=>['auth'], 'as'=>'backoffice.'], function(){
Route::resource('role', 'App\Http\Controllers\RoleController');
});
create.blade.php
@extends('theme.backoffice.layouts.admin')
@section('title','Crear rol')
@section('head')
@endsection
@section('content')
<div class="section">
<p class="caption">Introduce los datos para crear un nuevo rol</p>
<div class="divider"></div>
<div id="basic-form" class="section">
<div class="row">
<div class="col s12 m8 offset-m2">
<div class="card-panel">
<h4 class="header2">Crear rol</h4>
<div class="row">
<form class="col s12" method="post" action="{{ route('backoffice.role.store') }}">
{{ csrf_field() }}
<div class="row">
@error('name')
<span style="color:red" class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="input-field col s12">
<input id="name" type="text" name="name">
<label for="name">Nombre</label>
</div>
</div>
<div class="row">
@error('description')
<span style="color:red" class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="input-field col s12">
<textarea name="description" class="materialize-textarea" id="description" cols="30" rows="10"></textarea>
<label for="email">Descripcion</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<button class="btn waves-effect waves-light right" type="submit">Guardar
<i class="material-icons right">send</i>
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('scripts-foot')
@endsection
show.blade.php
@extends('theme.backoffice.layouts.admin')
@section('title','Clinic')
@section('head')
@endsection
@section('content')
<div class="section">
<p class="caption"><strong>Rol: </strong>{{$role->name}}</p>
<div class="divider"></div>
<div id="basic-form" class="section">
<div class="row">
<div class="col s12 m8 offset-m2">
<div class="card-panel">
<h4 class="header2">Usuarios con el rol de {{$role->name}}</h4>
<div class="row">
<ul>
<li>Raul</li>
<li>Tomas</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('scripts-foot')
@endsection
我告诉你我的代码是做什么的。
1-我们在 CREATE 视图中创建一个新角色并保存它。
2-这会传递到 store 方法并将其保存在数据库中
3- store 方法返回一个重定向到 SHOW 方法的路由,以便新创建的角色显示在所述视图中。
错误:: [Route: backoffice.role.show] [URI: role/{role}] [Missing parameter: role] 缺少必需参数。
我不明白我做错了什么,因为我在进行重定向时将所需的参数传递给了 store 方法中的路径名。这是关于寻找不同的解决方案还是我有一个我没有意识到的错误? .非常感谢您的关注。
【问题讨论】:
-
欢迎来到 SO ...
$role->store(...)返回什么? -
非常感谢! $角色->存储($请求);它返回按请求输入的内容,但带有 slug。