我一直在尝试创建一个简单的用户管理系统,但在查询关系时不断遇到障碍.例如,我有用户和角色,每当我尝试对所有用户及其角色进行查询时,我都会收到错误消息.标题中的那个只是我遇到的最新版本.
我的用户和角色模型如下所示:
class Role extends Model
{
public function users()
{
$this->belongsToMany('\App\User', 'fk_role_user', 'role_id', 'user_id');
}
}
Run Code Online (Sandbox Code Playgroud)
class User extends Model
{
public function roles()
{
$this->belongsToMany('\App\Role', 'fk_user_role', 'user_id', 'role_id');
}
}
Run Code Online (Sandbox Code Playgroud)
我的迁移表中两者之间的多对多关系如下所示:
public function up()
{
Schema::create('role_user', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned()->nullable(); //fk => users
$table->integer('role_id')->unsigned()->nullable(); //fk => roles
$table->foreign('fk_user_role')->references('id')->on('users')->onDelete('cascade');
$table->foreign('fk_role_user')->references('id')->on('roles')->onDelete('cascade');
});
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试在控制器中获取他们关系的所有记录:
public function index()
{
$users = User::with('roles')->get();
return $users;
}
Run Code Online (Sandbox Code Playgroud)
所以我需要另一双眼睛告诉我这里我缺少什么?
好的,我有以下情况:
我正在构建的系统是从REST API检索数据并将数据保存到数据库中.我想知道的是如何实现这一点以及这样的行为在Laravels结构(控制器,模型等)意义上的位置?Laravel是否有内置机制从外部源检索数据?
我正在设计一个系统,在这个系统中,人们可以创建一个条目,然后在该条目中添加附件,然后将其保存到数据库中.但是,我对如何实现附件处理有两种想法.
我正在两种方法之间展开斗争:
现在,据我所知,这两种方法都有利有弊.
第一种方法会将所有数据保存在同一个地方,以便我可以轻松地将其移动到其他位置.此外,就"数据的位置"而言,它保持一致.另一方面,我听说保存这样的东西非常耗费资源,数据库大小将会大量增加.
第二种方法将允许数据库保持容易管理的数据字段,如文本和数字,而服务器上更重的东西.如果需要,这还允许更直接地访问文件.另一方面,数据是分离的并且更难以跟踪,并且还需要引入文件系统访问以便检索所述文件.
我倾向于采用第一种方法,但为此我希望得到以下答案:
如何直接将数据库中的附件保存对数据库大小和应用程序性能产生影响?