这是我的第一个问题,请原谅任何协议错误!
我也是新来的拉威尔5。我看了基础视频系列(特别是“同步标签”,并将其用于简单的数据透视表),搜索了论坛和更多的在线内容,但实际上我甚至不确定我搜索的内容是否是实现我希望的正确方法。
我正在尝试创建/更新/编辑用户的个人资料,以跟踪他们的工作经验。因此,用户可以拥有多个职位,这些职位将链接到公司。
我希望公司表是单独的,这样用户可以从下拉列表中选择现有公司。职位也是一样——如果职位存在,比如“CEO”,我希望用户能够选择该职位,而不是添加新职位。
我创建了一个带有以下字段的表单:
<div class="workexperience">
<!--Work Experience / position -->
<!-- Form Input -->
<div class="form-group">
{!!Form::label('positions_list', 'Work Experience:')!!}
{!!Form::select('positions_list', $positions, null, ['id'=> 'positions_list', 'class'=>'form-control','multiple'])!!}
</div>
<!--company-->
<div class="form-group" >
{!!Form::label('companies_list', 'Company:')!!}
{!!Form::select('companies_list', $companies, null, ['id'=>'companies_list','class'=>'form-control','multiple'])!!}
</div>
</div>
<div id="workexperience-placeholder"></div>
<a onclick="cloneMe('#workexperience')" class="btn btn-default btn-block"><span class="icon-entypo icon-plus"></span><b>Add Another</b></a>
我使用jqueryclone允许用户添加新的职位和公司
function cloneMe(thisDiv)
{
$(thisDiv).clone(false).insertBefore(thisDiv+"-placeholder:last");
}
这在视觉上满足了我的需求,但并没有像我预期的那样发布一系列职位和公司。
所以,我苦苦挣扎的是如何保存/同步用户、职位和公司。
我为公司用户、职位用户和公司职位创建了透视表,如下所示:
职位用户
职位id
用户id
公司职位
公司id
职位id
并设想了如下情景:
创建用户时,
职位链接到用户(使用同步方法)
公司链接到用户(使用同步方法)
职位链接到公司(?)
但我不知道如何同步职位和公司,因为它们可能需要先创建。基本上是想找出如何保持职位和公司之间的关系,特别是因为每个用户的职位和公司之间的关系可能会成倍增加。
编辑
因此,我尝试在position\u users表中添加公司ID的建议。
我无法解决的是如何同步来自“职位”和“公司”字段的信息,尤其是因为数据库中可能存在或不存在该职位或公司。
我使用与枢轴:
public function users()
{
return $this->belongsToMany('App\User')->withPivot('company_id')->withTimestamps();
}
在数据透视表的company_id字段中添加。但是我不确定如何将该id字段添加到数组中,因为它必须首先创建。
以下Laracast-23-同步标签,我使用
$user->positions()->sync($this->processPositions($positions));
其中,过程位置函数返回来自表单的位置的所有关联标识的数组——无论它们是以前存在的还是新创建的。
然而,我没有看到如何将company_id添加到这个同步函数。
请注意,职位和公司字段可以克隆,因此可能存在多个职位和公司的“集合”。
我问了另一个问题——Laravel 5:通过枢轴同步一个额外的字段(由@lukasgeiter回答)——这帮助我解决了我的问题,所以我想把这个问题标记为关闭。
我将有三个表:用户
、公司
和work_history
。work_history
将是数据透视表,但有几个额外的列:job_title
,start_date
和end_date
。这样,用户可以拥有并属于许多工作角色。
如果您希望角色被重新使用,那么您可以将work_history
表中的job_title
列替换为position_id
列。
问题内容: 如果我有一个实用函数,我希望能够从我的声明内的任何地方调用。是否可以在模块设置中使它全局访问,还是需要将其添加到每个控制器的作用域中? 问题答案: 基本上,您有两个选择,要么将其定义为服务,要么将其放在根范围内。我建议您使用它来提供服务,以避免污染根范围。您创建一个服务,并使其在控制器中可用,如下所示: 如果那不是您的选择,则可以将其添加到根范围中,如下所示: 这样,您所有的模板都可以
问题内容: Linux内核似乎支持细粒度的功能,该功能允许向进程授予特权以执行诸如打开原始套接字或提高线程优先级之类的操作而无需授予进程根特权。 但是,我想知道是否有一种方法可以授予 每个用户 功能。也就是说,允许非根和非suid进程获取那些功能。 问题答案: 有limits.conf,可以通过它限制用户或组的某些资源。 查看
问题内容: 在Go中,我们可以使用每个键的锁定来同步地图的每个键吗?是否始终需要地图级别的全局锁定?该文档说,任何对map的访问都不是线程安全的。但是,如果存在密钥,那么可以将其单独锁定吗? 问题答案: 不完全正确,但是如果您仅从地图上读取指针并修改目标对象,那么您就无需修改地图本身。
问题内容: 这就是问题所在:我们想要一个哈希表,其条目是线程安全的。 假设我的哈希表为,并且我想安全地增加条目线程之一的值:可以吗? 然后,每当我想增加一个条目时: 我认为它比ConcurrentHashMap更好,因为它仅锁定一个条目,而不像ConcurrentHashMap使用存储桶并将一组条目锁定在一起。 更重要的是,我不知道如何安全地使用COncurrenHashMap对其进行递增。例如,
我有一个系统,作为第三方的API。我需要观察每个第三方的响应时间。但正如普罗米修斯在其文档中所定义的: 请记住,键值标签对的每一个唯一组合都表示一个新的时间序列,这会显著增加存储的数据量。不要使用标签存储基数高的维度(许多不同的标签值),如用户ID、电子邮件地址或其他无界值集。 http_3rdParty1_requests_total http_3rdParty2_requests_total.
问题内容: 我有一个Web应用程序,并且我想为每个用户使用不同的日志,因此我可以了解该用户在系统上所做的事情的“历史记录”。 这是我到目前为止所拥有的: 问题是,作为Web应用程序,它是多线程的,所以AFAIK我不能一直使用并根据我要登录的用户来更改附加程序。我认为我应该为每个用户创建不同的内容,但这是正确的吗? 问题答案: 尝试切换到logback(log4j的后继者)。它带有一个Sifting