Syl*_*lar 5 php laravel laravel-5
我似乎无法将更新的配置文件保存到数据库.
在我的edit.blade.php中:
{!! Form::model($user, ['method' => 'PATCH', 'route' => ['profile.update', $user->company_name] ]) !!}
// fields
{!! Form::submit('Update Profile', ['class' => 'btn btn-primary']) !!}
{!! Form::close() !!}
Run Code Online (Sandbox Code Playgroud)
在我的ProfilesController中:
public function update($company_name)
{
$user = User::whereCompanyName($company_name)->firstOrFail();
$user->save(); // no validation implemented
flash('You have successfully edited your profile');
return redirect('/');
}
Run Code Online (Sandbox Code Playgroud)
点击更新按钮后,它会在主页上显示flash消息,但它没有保存到数据库中.我来自Rails,我觉得我需要将某些内容列入白名单.
关键是,您根本不更改用户模型...您检索它,然后再次保存它而不设置任何字段.
$user = User::whereCompanyName($company_name)->firstOrFail();
// this 'fills' the user model with all fields of the Input that are fillable
$user->fill(\Input::all());
$user->save(); // no validation implemented
Run Code Online (Sandbox Code Playgroud)
如果您使用上述方法
$user->fill(\Input::all());
Run Code Online (Sandbox Code Playgroud)
你必须在你的用户模型中添加一个$ fillable数组
protected $fillable = ['name', 'email', 'password']; // add the fields you need
Run Code Online (Sandbox Code Playgroud)
如果您明确想要只设置一个或两个(或三个....)字段,则可以使用它来更新它们
$user->email = \Input::get('email'); // email is just an example....
$user->name = \Input::get('name'); // just an example...
...
$user->save();
Run Code Online (Sandbox Code Playgroud)
如果您尝试过提供的anwer Sinmok,您可能会因为使用而获得"whooops"页面
Input::get('field');
Run Code Online (Sandbox Code Playgroud)
代替
\Input::get('field');
Run Code Online (Sandbox Code Playgroud)
在你的Blade语法中,我假设您使用了laravel 5.因此,当您的控制器是命名空间时,您必须在输入之前添加\以引用根命名空间(或在类的顶部放置一个use语句)
通常在开发服务器上,您应该启用调试.那么你有更多关于什么出错的详细信息,而不仅仅是纯粹的......"哎呀......"
在您的config/app.php文件中,您可以设置
'debug' => true;
Run Code Online (Sandbox Code Playgroud)
要么
你看看http://laravel.com/docs/5.0/configuration 并使用.env文件.
如果您使用.env文件,请确保有一个类似的条目
APP_DEBUG=true
Run Code Online (Sandbox Code Playgroud)
然后你可以在config/app.php中访问该值
'debug' => env('APP_DEBUG'),
Run Code Online (Sandbox Code Playgroud)
您的安装中应该有一个.env.example,以便您了解此类文件的外观.
| 归档时间: |
|
| 查看次数: |
29509 次 |
| 最近记录: |