我试图使用表单请求保存数据,但不起作用。
带有错误数组或成功消息的数据返回,但是没有保存数据。
我的代码怎么了:https://gist.github.com/kneipp/42f7d316b9bbc2157668
<?php
namespace App\Http\Requests;
use App\Http\Requests;
class ProfileFormRequest extends Request
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'intro' => 'required',
];
}
}
<?php
namespace App\Http\Controllers;
use App\Profile;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Input;
class ProfileController extends Controller
{
public function update(Requests\ProfileFormRequest $request)
{
//$id = Auth::User()->id;
return \Redirect::route('profile.edit')->with('message', 'Dados salvos!');
}
}
代码重构,感谢您的Auth :: id()技巧:
public function update(Requests\ProfileFormRequest $request)
{
Profile::find(Auth::id())
->fill($request->all())
->save();
return \Redirect::route('profile.edit')->with('message', 'Dados salvos!');
}
您需要更新代码以在模型上实际调用save方法,例如,可以通过多种方式来完成
public function update(Requests\ProfileFormRequest $request)
{
Auth::user()->intro = $request->input('intro');
Auth::user()->save();
return \Redirect::route('profile.edit')->with('message', 'Dados salvos!');
}
Laravel表单请求被设计(除其他外)来验证输入并自动处理将用户重定向回。
此外,您还可以使用Auth :: id()获取登录用户的ID。