【发布时间】:2021-10-10 18:38:08
【问题描述】:
嗨,我正在使用 Laravel 7,并且在将表的 id 存储在另一个表上时处理了一些问题。我有一个名为 customers 的表和另一个名为 contacts 的表,其中一个客户可能有很多联系人,而一个联系人只属于一个客户。
客户.php:
public function contacts(){
return $this->hasMany(Contact::class);
}
这是我建立关系的方法联系人。
以下是我在 Contact.php 中的客户方法:
public function customer(){
return $this->belongsTo(Customer::class,'id_account','id');
}
在我的联系人表中,我有一个名为 id_account 的列,我希望在那里存储客户 ID。所以我试图通过执行以下操作来实现这一点:
namespace App\Http\Controllers\Backend;
use Illuminate\Http\Request;
use App\Model\Contact;
use App\Model\Customer;
use App\Http\Controllers\Controller;
use Auth;
use Session;
class ContactController extends Controller
{
//
public function view(){
$allData = Contact::all();
return view('backend.contact.view-contact', compact('allData'));
}
public function add(){
$customers = Customer::all();
$contact['customers'] = Customer::all();
return view('backend.contact.add-contact', compact('customers'));
}
public function store(Request $request){
$customers = Customer::all();
$contact = new Contact();
$contact->name = $request->name;
$contact->lastname = $request->lastname;
$contact->id_account = Customer::contacts('id');
$contact->idOwner = Auth::user()->id;
$contact->position = $request->position;
$contact->mobile_no = $request->mobile_no;
$contact->email = $request->email;
$contact->save();
Session::flash('success');
return redirect()->route('contact.view', compact('contact','customers'));
}
}
我尝试了几种方法,例如:
$contact->id_account = Customer::contacts('id');
或者
$contact->id_account = Customer::get('id');
$contact->id_account = $request->$customers->id;
但是这些都不起作用,我是 Laravel 的新手,我真的在为这个问题苦苦挣扎。不同类型的错误是:
Invalid datetime format: 1366 Incorrect integer value: '[{"id":1}]' for column `axis`.`contacts`.`id_account` at row 1 (SQL: insert into `contacts` (`name`, `lastname`, `id_account`, `idOwner`, `position`, `mobile_no`, `email`, `updated_at`, `created_at`) values (Mateo, Ghidini, [{"id":1}], 1, pasante, 12345678, mateo.ghidini@hotmail.com, 2021-08-05 18:31:12, 2021-08-05 18:31:12))
另一个错误:
Trying to get property 'id' of non-object
最后:
Non-static method App\Model\Customer::contacts() should not be called statically
<div class="form-group col-md-6">
<label for="account">Cuenta</label>
<select name="account" id="" class="form-control">
<option value="">Seleccione el holding de la empresa</option>
@foreach ($customers as $key => $customer)
<option value="{{$customer->id}}">{{$customer->holding}}</option>
@endforeach
</select>
</div>
【问题讨论】:
标签: laravel eloquent laravel-7