Wenn das Speichern fehlschlägt, ist dies der Code
return redirect()->back()->withInput()->withErrors('保存失败!');
Wenn das Speichern erfolgreich ist, wie kann ich zurückkehren, wenn eine Vorlage vorhanden ist?
return redirect('/模版)->??????('保存成功');
Oder eine Erfolgsmeldung erscheint auf der Vorlage
return redirect('/模版)->with('保存成功',$ok); //总不能一直显示。。
============================================== === ============================
Router:
Route::get('/config', 'ConfigsController@index');
Route::post('config/add', [
'as' => 'add',
'uses' => 'ConfigsController@add'
]);
Controller
<?php namespace App\Http\Controllers\Admin;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Configs;
use Input;
use Illuminate\Http\Response;
class ConfigsController extends Controller {
/**
* 显示配置页面,从数据库ID=1获取
*/
public function index()
{
$config_view = Configs::find(1);
return view('admin.write_config')->with('config_db',$config_view);
}
/**
* 提交更新数据,表单验证
*/
public function add(Request $request)
{
$this->validate($request, [
'web_name' => 'required',
'web_add' =>'required',
'web_email' => 'required|email',
'web_copy' => 'required',
'web_keywords' => 'required',
'web_description' => 'required',
]
);
$configs = Configs::find(1);
$configs->web_name = Input::get('web_name');
$configs->web_add = Input::get('web_add');
$configs->web_email = Input::get('web_email');
$configs->web_copy = Input::get('web_copy');
$configs->web_keywords = Input::get('web_keywords');
$configs->web_description = Input::get('web_description');
//判断,如果通过验证,那么第一步跳转到config页面,并且显示成功
if ($configs->save()) {
return redirect('/admin/config')->with('status', 'Update Success! 成功! :)');
} else {
return redirect()->back()->withInput()->withErrors('保存失败!');
}
}
}
Vorlagenseite
@extends('admin.admin')
@section('content')
<p class="home_con">
<h3>基本设置</h3>
<form method="post" action="/admin/config/add" class="forms">
//对中文显示无效
@if (session('status'))
<p class="tools-alert tools-alert-green">
{{ session('status') }}
</p>
@endif
@if (count($errors) > 0)
<p class="tools-alert tools-alert-red">
<strong>错误</strong>你填写数据有问题!请重新填写!<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</p>
@endif
<label>
网站名称
<input type="text" name="web_name" class="width-50" value="{{$config_db->web_name}}" />
</label>
<label>
网站地址
<input type="text" name="web_add" class="width-50" value="{{$config_db->web_add}}" />
</label>
<label>
管理邮箱
<input type="text" name="web_email" class="width-50" value="{{$config_db->web_email}}" />
</label>
<label>
版权信息
<input type="text" name="web_copy" class="width-50" value="{{$config_db->web_copy}}" />
</label>
<br>
<h3>SEO管理</h3>
<label>
网站关键词
<input type="text" name="web_keywords" class="width-50" value="{{$config_db->web_keywords}}" />
</label>
<label>
网站描述
<input type="text" name="web_description" class="width-50" value="{{$config_db->web_description}}" />
</label>
<input type="submit" class="btn btn-blue" value="更新" />
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
</p>
@endsection
首先我个人理解的
redirect()
并不是redirect('/模板')
,而是redirect('/routePath')
,如果你要这样用的话,比如说实现下面的跳转:一般的流程是这样的,首先你得在
routes.php
中注册你的路由,比如:然后在
UsersController
的storeSuccess
方法一般会有下面这个语句:最后在
success.blade.php
中就可以使用类似下面的语句来获取跳转的信息了:这里的
status
就是最开始redirect()->with()
中的status
,理解为key
。用session
取这个key
就可以了最后,如果你想学习laravel,可以到我刚刚上线的社区去看看,这里有一些列文章教程,后期会尝试录视频:
链接---》Laravist
Happy Hacking