我想有两个表,一个用于#include <stdio.h>
void fib(int num, int *arr, int pos);
int main()
{
int num;
printf("Enter any number : \n");
scanf("%d", &num);
int arr[num];
if (num > 1) {
arr[0] = 0 ;
arr[1] = 1 ;
}
int pos = 2;
fib(num, arr, pos);
for (int i = 0; i < num; i++)
printf("%d ", arr[i]);
}
void fib(int num, int *arr, int pos)
{
if (pos < num && pos > 1)
{
arr[pos] = arr[pos - 2] + arr[pos - 1];
fib(num, arr, pos + 1);
}
else {
return;
}
}
,一个用于Employees
,雇员和公司都应该在站点内注册,因此他们应该在提供的Companies
表中有记录与Laravel。我应该如何构建模型之间的关系,应该使用多态关系还是一对一使用?
答案 0 :(得分:0)
答案是在“用户”表中添加两列:userable_id
和userable_type
。 userable_id
将用于存储实体行id
或Employee
的行Company
,而userable_type
将保存{{1} }雄辩模型的路径。
在class
迁移文件中,添加以下两行:
create_users_table
在// ...
$table->integer('userable_id')->unsigned();
$table->string('userable_type');
// ...
模型中:
User.php
在您的class User extends Model {
// Add this declaration.
public function userable()
{
return $this->morphTo();
}
}
模型中:
Company.php
class Company extends Model
{
// Add this method.
public function user()
{
return $this->morphMany(User::class, 'userable');
}
}
模型中的与上述操作相同:
Employee.php
现在,您应该可以通过运行以下命令来访问class Employee extends Model
{
// Add this method.
public function user()
{
return $this->morphMany(User::class, 'userable');
}
}
:
user
并使用这种单线方式访问实体:
App\Company::all()->get(1)->user;
// or
App\Employee::all()->get(1)->user;