在我的模型中,我设置了引导方法,因此当我软删除记录时,相关记录也会被软删除。像这样:
公司.php
protected static function boot()
{
parent::boot();
static::deleting(function($company) {
$company->department()->delete();
});
}
Run Code Online (Sandbox Code Playgroud)
部门.php:
protected static function boot()
{
parent::boot();
static::deleting(function($department) {
dd('test');
});
}
Run Code Online (Sandbox Code Playgroud)
因此,当我想要软删除公司时,部门也应该被软删除。但是当我dd
在static::deleting
(Department.php)中时,这还没有达到。当我dd
喜欢这样的时候:
部门.php
protected static function boot()
{
parent::boot();
dd('test');
static::deleting(function($department) {
});
}
Run Code Online (Sandbox Code Playgroud)
结果是test
我在这里做错了什么?
我的方法看起来像这样:
public function saveContacts(Request $request)
{
if($request->contacts) {
$contacts = collect($request->contacts)->pluck('id');
$this->contacts()->sync($contacts->toArray());
}
}
Run Code Online (Sandbox Code Playgroud)
它正在工作,但如果$request->contacts
是一个空数组,它不会删除所有记录.这可能是什么情况?
我可以这样链接vue.js 2.0
:
<router-link to="home">Home</router-link>
Run Code Online (Sandbox Code Playgroud)
这将编译为a
标记.但是我如何用div做到这一点?
随着vue.js 1.0
我做了这样的:
<div v-link="{ name: 'Messages', params: { topic: topic.slug }}">test</div>
Run Code Online (Sandbox Code Playgroud)
那显然不再适用了.
当我想保存对票的反应时,我有三张桌子(在laravel中):
-Tickets
-Reaction
-Reaction_Tickets (pivot table)
Run Code Online (Sandbox Code Playgroud)
当我想保存反应时,我这样做:
public function addReaction(Request $request, $slug)
{
$ticket = Ticket::whereSlug($slug)->firstOrFail();
$reaction = new reactions(array(
'user_id' => Auth::user()->id,
'content' => $request->get('content')
));
return redirect('/ticket/'.$slug)->with('Reactie is toegevoegd.');
}
Run Code Online (Sandbox Code Playgroud)
但是现在它当然没有添加到数据透视表中.我无法添加它,因为我没有它的模型.这样做的正确方法是什么?
编辑:
-Tickets
public function reactions()
{
return $this->belongsToMany('App\reactions');
}
-Reactions
public function tickets()
{
return $this->hasOne('App\tickets');
}
Run Code Online (Sandbox Code Playgroud) 当我在我的 mac 上安装 composer 时:
curl -sS https://getcomposer.org/installer | php
然后尝试像这样移动它:
须藤 mv php composer.phar /usr/local/bin/composer
它告诉我:
将 composer.phar 重命名为 /usr/local/bin/composer:没有这样的文件或目录
当我查看我的路径时:
回声 $PATH
它告诉我:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
我猜那不可能是对的,我对作曲家不是很熟悉,我该怎么办?
谢谢
当我想在用户上传了 docx 文件时显示 docx 图标时,我收到以下错误:
Call to undefined method Illuminate\Database\Query\Builder::getClientOriginalExtension() (View: /home/vagrant/Code/support/local/resources/views/users/ticket.blade.php)
Run Code Online (Sandbox Code Playgroud)
我正在尝试这样:
@foreach($ticket->image as $photo)
@if($photo->getClientOriginalExtension() == 'docx')
<img src="icons/word.png">
@else
<a href="{{ $photo->path }}"><img src="{{ $photo->path }}" alt=""/></a>
@endif
@endforeach
Run Code Online (Sandbox Code Playgroud)
显然这getClientOriginalExtension()
是不对的。但我应该用什么来代替呢?
我正在使用vue.js 2.0
我有这个方法:
calculatePercentage(option) {
let totalVotes = 0;
this.poll.options.forEach((option) => {
totalVotes+= option.votes.length;
});
return option.votes.length / totalVotes * 100;
}
Run Code Online (Sandbox Code Playgroud)
这是我的bootstrap进度条:
<div class="span6">
<div v-for="option in poll.options">
<strong>{{ option.name }}</strong><span class="pull-right">{{ calculatePercentage(option) }}%</span>
<div class="progress progress-danger active" aria-valuenow="12">
<div class="bar" style="width: 15%;"></div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
所以calculatePercentage(option);
工作正常.但是如何将它绑定到style(style="width: 15%;"
)?
非常感谢
如何在标签周围画一个圆圈?
现在我已经尝试过这个:
public void drawUseCase(int width, int height, UseCase useCase)
{
Label lbUseCase = new Label();
Graphics g = lbUseCase.CreateGraphics();
Pen p = new Pen(Color.Black, 1);
g.DrawEllipse(p, width, height, 200, 200);
lbUseCase.Location = new System.Drawing.Point(width, height);
lbUseCase.Text = useCase.name;
mainPanel.Controls.Add(lbUseCase);
}
Run Code Online (Sandbox Code Playgroud)
但这行不通。有任何想法吗?
它在winforms中。'它不起作用'我的意思是只显示标签,但没有圆圈或其他任何东西。
我有一个有更新方法的观察者:
ObserverServiceProvider.php
public function boot()
{
Relation::observe(RelationObserver::class);
}
Run Code Online (Sandbox Code Playgroud)
RelationObserver.php
public function updated(Relation $relation)
{
$this->cache->tags(Relation::class)->flush();
}
Run Code Online (Sandbox Code Playgroud)
所以当我更新控制器中的关系时:
public function update(Request $request, Relation $relation)
{
$relation->update($request->all()));
return back();
}
Run Code Online (Sandbox Code Playgroud)
一切都按预期工作.但现在我有了一个数据透视表.一个关系 belongsToMany
的产品.
所以现在我的控制器方法如下所示:
public function update(Request $request, Relation $relation)
{
if(empty($request->products)) {
$relation->products()->detach();
} else {
$relation->products()->sync(collect($request->products)->pluck('id'));
}
$relation->update($request->all());
return back();
}
Run Code Online (Sandbox Code Playgroud)
问题是如果我只添加或删除产品,则不再触发观察者.
如何在pivot table
更新时触发观察者?
谢谢
如何更改验证器的语言消息。例如,如果我想更改“必填”文本“ kmszakelijk字段为必填字段”。去别的东西?
php ×7
laravel ×5
javascript ×2
laravel-5 ×2
pivot ×2
vue.js ×2
c# ×1
composer-php ×1
css ×1
macos ×1
observers ×1
vue-router ×1
winforms ×1