【问题标题】:Save issue in Laravel在 Laravel 中保存问题
【发布时间】:2016-01-09 06:04:36
【问题描述】:

表结构:

1   ID  int(11) AUTO_INCREMENT  
2   filename    varchar(11) latin1_swedish_ci        
3   status  int(2)          
4   type    int(11) 
5   created_at  timestamp       
6   updated_at  timestamp           


Route::get('/verify1/{data}',function($data){

$task=   FileLocation::where('ID',"=",$data)->first();
$task->status = 1;
$task->save();   

});

问题:我试图返回 $data。它显示 $data=1。我的表中也有 ID=1。为什么不保存?能否请你帮忙。这个问题搞砸了我的头。我是 laravel 的新手。谢谢你。

【问题讨论】:

  • 您有任何错误吗?你确定你的数据没有保存?在运行这条路线之前,status 列的初始值是多少?
  • 您好,Marcin,感谢您的回复。 status 的初始值为 0。status 的最终值为 0。我没有收到任何错误。
  • 您确定您在浏览器中运行的网址正确吗?您能否向我们展示FileLocation 模型并向我们展示您向我们展示的相关表格的表格名称是什么?
  • class FileLocation extends Eloquent implements UserInterface, RemindableInterface { use UserTrait, RemindableTrait;受保护的 $table = '文件'; protected $hidden = array('password', 'remember_token'); } ID 文件名状态类型 created_at updated_at 1 image1.jpg 0 1 2016-01-09 11:37:52 2016-01-09 05:20:10 2 image2.jpg 0 2 2016-01-09 12:49:48 0000 -00-00 00:00:00
  • 您能否在$task->status = 1; 之前添加dd($task); 并将结果包含在您的问题中?

标签: laravel laravel-4 eloquent


【解决方案1】:

FileLocation 模型类中添加受保护的$fillable = array('status');Mass Assignment 将不允许更新此数据,直到 laravel 不知道可以更新它。如果所有数据都可以更改,则添加受保护的$guarded = array(); 这个以及关于这个子的更多信息。可以找到here

在快捷方式中:

创建模型后,一些属性会受到 laravel 的保护。这是针对敏感数据的情况,例如:'id', 'created_at' 等。默认情况下,所有属性都受到保护。它可以通过两种方式进行更改:(白色或黑色)列表。这些是受保护的 $fillable 或受保护的 $guarded 数组,其中包含要关心的属性。

【讨论】:

  • $fillable 和 $guarded 是否只影响质量分配 (->fill(...)) 而问题使用的直接分配仍然有效吗?
猜你喜欢
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 2021-04-28
  • 2020-11-04
  • 1970-01-01
  • 2021-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多