Laravel 5.1表单请求未保存数据

问题描述 投票:1回答:2

我试图使用表单请求保存数据,但不起作用。

带有错误数组或成功消息的数据返回,但是没有保存数据。

我的代码怎么了: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!');
    }   
}
laravel laravel-5.1
2个回答
1
投票

代码重构,感谢您的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!');
}

1
投票

您需要更新代码以在模型上实际调用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。

© www.soinside.com 2019 - 2024. All rights reserved.