小编Jam*_*mie的帖子

Laravel启动方法

在我的模型中,我设置了引导方法,因此当我软删除记录时,相关记录也会被软删除。像这样:

公司.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)

因此,当我想要软删除公司时,部门也应该被软删除。但是当我ddstatic::deleting(Department.php)中时,这还没有达到。当我dd喜欢这样的时候:

部门.php

protected static function boot()
    {
        parent::boot();
        dd('test');
        static::deleting(function($department) {
        });
    }
Run Code Online (Sandbox Code Playgroud)

结果是test

我在这里做错了什么?

php laravel-5

3
推荐指数
1
解决办法
1万
查看次数

Laravel同步无法使用空数组

我的方法看起来像这样:

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是一个空数组,它不会删除所有记录.这可能是什么情况?

php laravel

3
推荐指数
1
解决办法
2222
查看次数

div组件中的Vue.js 2.0路由器链接

我可以这样链接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)

那显然不再适用了.

javascript vue.js vue-router

3
推荐指数
3
解决办法
5685
查看次数

向数据透视表laravel添加值

当我想保存对票的反应时,我有三张桌子(在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)

php pivot laravel

2
推荐指数
1
解决办法
702
查看次数

无法移动作曲家

当我在我的 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

我猜那不可能是对的,我对作曲家不是很熟悉,我该怎么办?

谢谢

php macos composer-php

2
推荐指数
2
解决办法
8900
查看次数

Laravel 在 Blade 中获取文件扩展名

当我想在用户上传了 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()是不对的。但我应该用什么来代替呢?

php laravel laravel-blade

2
推荐指数
1
解决办法
1万
查看次数

Vue.js进度条

我正在使用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%;")?

非常感谢

javascript css twitter-bootstrap vue.js

2
推荐指数
1
解决办法
4450
查看次数

C#在标签周围画圆圈

如何在标签周围画一个圆圈?

现在我已经尝试过这个:

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中。'它不起作用'我的意思是只显示标签,但没有圆圈或其他任何东西。

c# winforms

2
推荐指数
1
解决办法
2288
查看次数

Laravel观察员的数据透视表

我有一个有更新方法的观察者:

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更新时触发观察者?

谢谢

php pivot observers laravel

2
推荐指数
2
解决办法
2451
查看次数

Laravel更改验证语言

如何更改验证器的语言消息。例如,如果我想更改“必填”文本“ kmszakelijk字段为必填字段”。去别的东西?

php laravel laravel-5

1
推荐指数
1
解决办法
7596
查看次数