每当我尝试通过另一个页面中的锚点访问/技巧/添加时,我都会收到此错误
重定向到此页面的锚点(使用GET方法)是:
<a class="btn icon-btn btn-success" href="/skills/add">
<span class="glyphicon btn-glyphicon glyphicon-plus img-circle text-success"></span>
Add
</a>
尝试使用dd("test")
对其进行测试但是甚至无法工作。
这是我的技能路线/添加:
Route::put('/skills/add', 'SkillsController@add');
Route::get('/skills/add', 'SkillsController@addIndex');
以下是我在SkillsController中的功能
public function addIndex() {
if (Auth::check()) {
return view('skills.add');
} else {
return redirect('/home');
}
}
public function add(Request $request) {
/*Sets validation rules for Skill object*/
$skillRules = [
'name' => 'required|max:25|regex:/[1-9a-zA-Z ]\w*/',
];
if (Skills::where('name', '=', $request->name)->count() > 0) {
return redirect('/skills')->with('message', "EXISTS");
}
$validator = Validator::validate($request->all(), $skillRules);
if ($validator == null) {
$newSkill = new Skills;
$newSkill->name = strtolower($request->name);
$newSkill->save();
return redirect('/skills')->with('message', "CREATED");
}
}
技巧.add视图就是这个
@extends('layouts.app')
@section('content')
<div class="container">
<h1>Edit Skill</h1>
<form method="POST" action="/skills/add">
{{method_field('PUT')}}
{{csrf_field()}}
<div class="row">
<div class="col-lg-5">
<div class="form-group">
Name:
<input name="name" class="form-control">
</div>
</div>
</div>
<div class="row">
<div class="col-lg-2">
<div class="form-group">
<button type="submit" class="btn btn-primary">Add Skill</button>
<a href="/skills"><button type="button" class="btn btn-danger">Cancel</button></a>
</div>
</div>
</div>
</form>
</div>
@endsection
答案 0 :(得分:0)
不确定发生了什么,如果将来有人遇到同样的问题,我真的只是删除并手动制作控制器,模型和刀片,它开始工作。不是很多科学或解释,抱歉。
答案 1 :(得分:-1)
将您的route
更改为已命名的
Route::GET('/skills/add', 'SkillsController@addIndex')->name('addSkills');
Route::POST('/skills/add', 'SkillsController@add')->name('saveSkills');
和你的刀片
@extends('layouts.app')
@section('content')
<div class="container">
<h1>Edit Skill</h1>
<form method="POST" action="{{route('saveSkills')"> //** Change this
{{csrf_field()}}
<div class="row">
<div class="col-lg-5">
<div class="form-group">
Name:
<input type="text" name="name" class="form-control"> //** Change this
</div>
</div>
//Remaining form groups
</div>
<div class="row">
<div class="col-lg-2">
<div class="form-group">
<button type="submit" class="btn btn-primary">Add Skill</button>
<a href="/skills"><button type="button" class="btn btn-danger">Cancel</button></a>
</div>
</div>
</div>
</form>
</div>
@endsection
将锚标记的href值更改为命名路线,如
<a class="btn icon-btn btn-success" href="{{route('addSkills')}}">
<span class="glyphicon btn-glyphicon glyphicon-plus img-circle text-success"></span>
Add
</a>
和您的控制器
// SHOW ADD NEW SKILL FORM
public function addIndex() {
if (Auth::check()) {
return view('skills.add'); //view path is skills->add.blade.php
} else {
return redirect('/home');
}
}
//SAVE ADD NEW SKILL FORM DATA
public function add(Request $request) {
dd($request->name); //Check if value is getting
/*Sets validation rules for Skill object*/
$skillRules = [
'name' => 'required|max:25|regex:/[1-9a-zA-Z ]\w*/',
];
$validator = Validator::validate($request->all(), $skillRules);
if (Skills::where('name', '=', $request->name)->count() > 0) {
return redirect('/skills')->with('message', "EXISTS");
}
if ($validator == null) {
$newSkill = new Skills;
$newSkill->name = strtolower($request->name);
$newSkill->save();
return redirect('/skills')->with('message', "CREATED");
}
}
还在控制器
上添加use App\RampUp\Skills;
答案 2 :(得分:-2)
抱歉,但没有POST
- <form method="POST" action="/skills/add">
的路线
也许POST仍在执行。
另一方面,大多数Route
错误可以通过清除缓存(如果存在),重新排列路由或在其间放置一个组来解决,如
Route::group(['prefix' => 'skills'], function() {
Route::put('/add', 'SkillsController@add');
Route::get('/add', 'SkillsController@addIndex');
}