1
我是新的Laravel当我尝试将数据数据保存到数据库时,我遇到问题。这里的错误,我得到传递给HasOneOrMany :: save()的Laravel参数1必须是给定的Model数组的实例
传递给 照亮\数据库\雄辩\关系\ HasOneOrMany参数1 ::保存()必须照亮\数据库的 实例\口才\型号,数组给定,称为 S:\文档\ samdyk \供应商\ laravel \框架的\ src \照亮\数据库\雄辩\关系\ HasOneOrMany.php 上线267和定义
因此,这里是我的代码
class Skill extends Model
{
protected $fillable = ['skill_title', 'knowledge_level'];
}
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function skills() {
return $this->hasMany(Skill::class);
}
}
而这里的控制器功能
public function editMyProfile(Request $request) {
$user = Auth::user();
dump($request->get('skills'));
// dump($request->get('skills')[0]);
dump($user->skills()->saveMany($request->get('skills')));
return 1;
}
所以这里的$request->get('skills')
数据
array:5 [
0 => array:2 [
"skill_title" => "fghjghj"
"knowledge_level" => "20"
]
1 => array:2 [
"skill_title" => "gjghjhgj"
"knowledge_level" => "50"
]
2 => array:2 [
"skill_title" => "ghjhgjgfjh"
"knowledge_level" => "80"
]
3 => array:2 [
"skill_title" => "hjkhgkkkhgjkjhkhjgk"
"knowledge_level" => "53"
]
4 => array:2 [
"skill_title" => "jghjhgjhgj"
"knowledge_level" => "57"
]
]
因此,大家可以看到我尝试保存阵列(这是显而易见的)。然而即使在laravel文档中,我也看到这个 $ post = App \ Post :: find(1);
$post->comments()->saveMany([
new App\Comment(['message' => 'A new comment.']),
new App\Comment(['message' => 'Another comment.']),
]);
那么为什么我的代码是错的?
谢谢!我正在为这个问题挣扎3个小时!你为我节省了很多时间。我会尽快接受你的回答。 :) – David