У меня есть три таблицы, которые связывают друг с другом бросок Полиморфные отношения Один-ко-многим
Таблицы
users
id - integer
name - string
office
id - integer
name - string
phones
id - integer
name - string
phones_id - integer
phones_type - string
Я хочу добавить телефонные номера в таблицу phones
относится к конкретному пользователю
user.php
public function phones()
{
return $this->morphMany('App\Phone', 'phones');
}
Phone.php
public function phones()
{
return $this->morphTo();
}
Создать.blade.php
<form action="{{route('dashboard.users.store')}}" method="post">
<div class="input-group control-group after-add-more">
<input type="text" name="phone[]" class="form-control">
<div class="input-group-btn">
<button class="add-more" type="button">Add</button>
</div>
</div>
<button type="submit">save</button>
</form>
<!-- Copy Fields -->
<div class="copy" hidden>
<div class="control-group input-group">
<input type="text" name="phone[]" class="form-control">
<div class="input-group-btn">
<button class="remove" type="button">Remove</button>
</div>
</div>
</div>
Javascript
<script>
$(document).ready(function() {
$(".add-more").click(function(){
var html = $(".copy").html();
$(".after-add-more").after(html);
});
$("body").on("click",".remove",function(){
$(this).parents(".control-group").remove();
});
</script>
Я пытаюсь сохранить записи на телефонах Используя этот код в UserController.php
if ($request->phone) {
$user->phones()->saveMany($request->phone);
}
но это дает мне ошибку
Аргумент 1, передаваемый в Illuminate \ Database \ Eloquent \ Relations \ HasOneOrMany :: save (), должен быть экземпляром Illuminate \ Database \ Eloquent \ Model, заданная строка называетсяв C: \ Server \ data \ htdocs \ Justice_way \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Relations \ HasOneOrMany.php в строке 264
dd($request)
дает мне
"phone" => array:2 [▼
0 => "+1 (776) 209-9366"
1 => "+1 (444) 579-3232"
]
Когда я пытаюсь
if ($request->phone) {
$phone = new Phone;
$phone->name = $request->phone;
$user->phones()->save($phone);
}
, он выдает ошибку
Аргумент 1 передается в Illuminate \ Database \ Grammar :: parameterize () must bТип массива int, указанный в C: \ Server \ data \ htdocs \ Justice_way \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Query \ Grammars \ Grammar.php, в строке 871