我有一个父母,我可以动态添加子组件.
在mount中添加子组件时,我会为事件注册一个监听器
EventBus.$on('content-type-saving', function() {
logic here...
}
Run Code Online (Sandbox Code Playgroud)
问题是当父组件从子组件数组中删除时,父组件中的组件被删除,即使仍然触发,组件内部的代码也会运行.
我怎样才能防止这种情况发生?我试过这个
beforeDestroy() {
//do something before destroying vue instance
EventBus.$off('content-type-saving')
}
Run Code Online (Sandbox Code Playgroud)
但是关闭了所有其他子组件的事件,所以那些仍然存在的事件不会再做逻辑事情,因为我关闭了被破坏的子组件中的事件.
我想如果我关闭了一个事件,它只会影响为该子组件监听该事件而不会为所有子组件转换事件.
如何阻止销毁的组件对事件做出反应?
Laravel文档给出了这个例子:
$value = Cache::remember('users', $minutes, function() {
return DB::table('users')->get();
});
Run Code Online (Sandbox Code Playgroud)
就我而言,我有
public function thumb($hash, $extension)
{
Cache::remember('thumb-'.$hash, 15, function() {
$image = Image::where('hash', $hash)->first();
});
Run Code Online (Sandbox Code Playgroud)
如果我跑了,我得到ErrorException in ImageController.php line 69: Undefined variable: hash.我试图将$ hash传递给函数,如下所示:
Cache::remember('thumb-'.$hash, 15, function($hash)
Run Code Online (Sandbox Code Playgroud)
但后来又出现了另一个错误:
缺少App\Http\Controllers\ImageController :: App\Http\Controllers {closure}()的参数1,在C:\ xampp\htdocs\imagesharing\vendor\laravel\framework\src\Illuminate\Cache\Repository.php中调用在316行并定义
如何传递参数,以便在查询中使用它?
我正在运行Laravel 5.3并尝试进行一些图像处理.我收到此错误:此PHP安装不提供GD库扩展.
我试过把gd放在我的composer.json中
"require": {
"php": ">=5.6.4",
"laravel/framework": "5.3.*",
"mews/purifier": "~2.0",
"vinkla/hashids": "^2.4",
"barryvdh/laravel-debugbar": "^2.2",
"fzaninotto/faker": "~1.4",
"intervention/image": "^2.3",
"gd": "*"
},
Run Code Online (Sandbox Code Playgroud)
它不起作用.我也尝试过:
"ext-gd": "*"
Run Code Online (Sandbox Code Playgroud)
那也不起作用.我查看了这个页面https://devcenter.heroku.com/articles/php-support,它说:
以下内置扩展已经构建为"共享",可以通过composer.json启用(括号中给出的内部标识符名称)
GD(gd)
此查询适用于5.2:
$galleries = Gallery::with(array(
'images' => function ($query) {
$query->orderBy('order', 'asc');
}
))
->with('votes')
->leftJoin('votes', 'votes.votable_id', '=', 'gallery.id')
->selectRaw(
'gallery.*, count(case votes.status when "upvote" then 1 else null end) - count(case votes.status when "downvote" then 1 else null end) as points'
)
->where('votes.votable_type','App\Gallery')
->groupBy('gallery.id')
->orderBy('points', 'desc')
->published()->orderBy('gallery.created_at', 'desc')->paginate(30);
Run Code Online (Sandbox Code Playgroud)
我试图选择所有有选票的画廊,当我在5.3中运行时,我得到了这个
1/2 PDOException in Connection.php line 333: SQLSTATE[42000]:
Syntax error or access violation: 1055 'images.gallery.title' isn't in GROUP BY
SQLSTATE[42000]: Syntax error or access violation: 1055 'images.gallery.title' isn't in
GROUP BY (SQL: …Run Code Online (Sandbox Code Playgroud) 我有这段代码,我认为会永远记住缓存:
$setting = \Cache::remember('website_description', 0, function() {
return App\Models\Setting::where('name', 'website_description')->first();
});
Run Code Online (Sandbox Code Playgroud)
但它根本不记得,有人告诉我,传递0记住功能会让它永远记住.由于这不起作用,我可以将项目永远放在缓存中吗?
我在 5.3 中使用了这个函数,现在当我尝试在 5.4 中使用它时:
$post->tags()->getRelatedIds();
Run Code Online (Sandbox Code Playgroud)
我收到函数不存在的错误,我检查了 5.4 的文档,但它不再存在。
任何人都知道为什么删除了这个有用的功能以及我可以做些什么来从相关模型中获取所有 ID?
我有这个:-
<div class="form-group">
<label for="">Allow Multiple</label>
<select class="form-control" v-model="allowMultiple">
<option value=true>Yes</option>
<option value=false>No</option>
</select>
</div>
Run Code Online (Sandbox Code Playgroud)
我allowMultiple=true在初始化它时设置,但是当我选择 NoallowMultiple='false'那么它不再是一个布尔值而是一个字符串?如何让它成为布尔值?
这是我的代码:
$("#form_editor").addClass('abcd')
$("#form_editor").delay(32000).removeClass('abcd')
Run Code Online (Sandbox Code Playgroud)
如果我没有取消注释第二行,则该类永远不会被应用.如果我将其注释掉,那么该类将按预期应用.似乎第二行完全没有任何延迟地执行即忽略.delay(32000).
延迟是否适用于addClass和removeClass?我认为它会延迟对它之后出现的任何函数的调用,但显然不是因为它似乎立即执行.
是否有人在Laravel中具有执行多态关系的经验?我需要为几个不同的模型提供一个设置表,这里的多态关系会很好,我想知道性能,就像每个模型都有自己的设置表一样好吗?
设置表很简单,这就是设置表的样子:
$table->increments('id');
$table->integer('foreign_id')->unsigned();
$table->string('key');
$table->string('value')->nullable();
Run Code Online (Sandbox Code Playgroud)
我会剃光每个模型设置所需的几个表,只是想知道使用多态设置是否会出现性能问题?
如果我决定使用多态,则将这些类型添加到表中:
$table->string('has_settings_type');
$table->biginteger('has_settings_id')->unsigned();
Run Code Online (Sandbox Code Playgroud)
这就是laravel需要添加对多态关系的支持。
我需要能够从数组中删除特定组件.我使用splice执行此操作,虽然该组件定义已从数组中删除,但vuejs会删除错误的组件.它总是删除最后添加的组件.
这是一个小提琴,提供了以下证明:
https://jsfiddle.net/wjjonm8n/
这是一个视频来展示正在发生的事情:
https://maxniko.tinytake.com/sf/MTg3NTI5NF82MDIxNDAx
这是一些代码:
Vue.component('row-component', {
props: ["rowData", "uniqueId"],
mounted: function() {
console.log('mounting: ' + this.uniqueId)
},
beforeDestroy: function() {
console.log('removing: ' + this.uniqueId)
},
template: `
<div>
row component: {{rowData}}
<button @click="$emit('delete-row')">Delete</button>
</div>`
})
new Vue({
el: '#app',
template: `
<div>
<row-component v-for="(row, index) in rows" :row-data="row" :uniqueId="index" v-on:delete-row="deleteThisRow(index)"></row-component>
<button @click="add()">add</button>
</div>
`,
data: {
rows: ["line1", "line2", "line3", "line4", "line5"],
},
methods: {
add() {
this.rows.push('line'+(this.rows.length+1))
},
deleteThisRow: function(index) {
this.rows.splice(index, 1)
console.log(this.rows)
}
}
}) …Run Code Online (Sandbox Code Playgroud) laravel ×6
vue.js ×3
vuejs2 ×3
eloquent ×2
gd ×1
heroku ×1
javascript ×1
jquery ×1
laravel-5 ×1
laravel-5.2 ×1
laravel-5.3 ×1
php ×1