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