我一直在搜索信息,并且只找到了一种从子组件发出事件的方法,然后可以在父组件中监听它们.有没有办法从父组件调用子方法?
我正在为编辑表单编写逻辑,并且在输入中显示数据时会有一些复杂性.
当我最初显示表单时,我显示的记录值如下:
value="{{$dog->title}}"
Run Code Online (Sandbox Code Playgroud)
然后当表单没有通过验证时,我需要显示旧的输入,这样用户就不会丢失他已输入的内容.所以我需要有一种方法来显示旧数据,如:
value="{{old('title')}}"
Run Code Online (Sandbox Code Playgroud)
因为我需要输入旧数据以防它存在,我最终得到了这段代码:
value="{{$dog->title or old('title')}}"
Run Code Online (Sandbox Code Playgroud)
在控制器中我检查Request是否有旧输入,我将$ dog var指定为null值.
我想问一下这是否是一种好的做法,还是有更好的"正确"方法呢?
我想覆盖Laravels的Mail的类Facade方法发送(只是拦截它强制一些检查然后如果它通过触发parent :: send())
做这个的最好方式是什么?
我在Stackexchange上看到了一个例子(请注意访问class属性的特性):
trait CheckPermissionTrait
{
protected function checkPermission($object_id)
{
$judge = $this->container->get('acme_judge');
$user = $this->container->get('security.context')->getToken()->getUser();
if( !$judge->isPermitted($user, $object_id) ) {
throw $this->createAccessDeniedException("Brabbel");
}
}
}
Run Code Online (Sandbox Code Playgroud)
并阅读其中一位回复者的评论:
那么你的特性不是一个有效的用例:根据定义,它的所有用户都需要在其依赖项中添加一个$ this-> container属性,这当然会对该类的合同和合同产生影响.它的孩子们.
为什么作者声称这是一个糟糕的用例,如果这可能是某人需要的?就像有人有几个类都具有所需的依赖关系并且所有这些类中都有相同的逻辑重新组合一样,它们是否应该保持代码重复?
我正在使用Laravels的默认迁移来创建通知表.
public function up()
{
Schema::create('notifications', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('type');
$table->morphs('notifiable');
$table->text('data');
$table->timestamp('read_at')->nullable();
$table->timestamps();
});
}
Run Code Online (Sandbox Code Playgroud)
但是在尝试使用它时出现错误:
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `notifications` add index `n
otifications_notifiable_id_notifiable_type_index`(`notifiable_id`, `notifiable_type`))
[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max …
Run Code Online (Sandbox Code Playgroud) 我有一个包含以下关系的数据库:
有projects
- 人们可以购买的东西,也有user_id
,
有backers
- 购买的人,
有orders
-每个订单是一个购买的Project
由Backer
(Backer
只能购买各Project
一次).这是一笔金额 - 显示Backer
购买该金额的金额Project
我需要的是写下面的查询 - 给定$user_id
,$count
并$sum
找到所有投资至少在$count
项目数量上user_id
等于$user_id
并且具有高于那些项目的购买总和的所有支持者$sum
.
Backer::whereHas('projects', function ($q) use ($sum, $userId){
$q->where('user_id', $userId);
}, '>=', $leastProjectCount)->get();
Run Code Online (Sandbox Code Playgroud)
但它并不限制$sum
购买
更新: 所以我提出了这个问题:
select * from `backers` \r\n
WHERE id > 0 \r\n
AND (select count(*)\r\n
FROM `projects` \r\n
inner join `orders` on …
Run Code Online (Sandbox Code Playgroud) 我在日志表中设置了一个user_id,现在遇到了一个问题,有时我需要将日志存储到非日志记录用户执行的操作中。
当我运行此迁移时
Schema::table('users_log', function (Blueprint $table) {
$table->unsignedInteger('user_id')->nullable()->change();
});
Run Code Online (Sandbox Code Playgroud)
我得到一个错误
[Illuminate \ Database \ QueryException] SQLSTATE [HY000]:常规错误:1832无法更改列'user_id':用于外键约束'users_log_user_id_foreign'(SQL:ALTER TABLE users_log CHANGE user_id user_id INT UNSIGNED DEFAULT NULL)
我在数据库播种期间在控制台中引发了一个错误:
"Trying to get property of non-object"
Run Code Online (Sandbox Code Playgroud)
但我找不到这行,因为文件太多。是否有任何应付这种情况的提示?
当我广播事件时,我必须使用 Laravel 事件名称,例如:
this.pusherChannel.bind('App\\Events\\ServerCreated', function(message) {
console.log(message.user);
});
Run Code Online (Sandbox Code Playgroud)
有没有办法,我可以重命名事件?
我有一个疑问:
Posts::whereHas('comments', function($query){
$query->where('name', 'like', 'asd');
})->with('comments')->get();
Run Code Online (Sandbox Code Playgroud)
它返回所有评论名称类似于“asd”的帖子以及这些帖子的所有评论。我可以在 '::whereHas' 中将上述约束用于 'with' 方法,这样它就不会返回所有评论,而只会返回符合要求的评论吗?还是我必须重复查询?
我试图去除一个AJAX调用只发送一次,但不幸的是,它告诉我,我传递它不是一个函数.这是我的代码:
getItems: function(page){
this.page = page;
console.log(typeof(this.getBackendItems));
_.debounce(this.getBackendItems(page), 500);
},
getBackendItems: function(page){
this.$http.get("{{url('api/user/items')}}", {page : page}).success(function(response){
this.items = response.data;
this.last_page = response.last_page;
});
},
Run Code Online (Sandbox Code Playgroud)
Console.log说getBackendItems是一个函数,但仍然会抛出一个错误,即函数没有传递给_.debounce()调用.
我的 Laravel 项目有一个奇怪的问题。找不到,当它第一次启动时 - 我只能登录/注销在隐身选项卡中打开应用程序。在普通选项卡中,当我已经登录并且删除存储中的会话信息后,它不会将我注销。
我SESSION_DOMAIN
之前在 env 中设置了一个,但我遇到了另一个问题,无法在www.*
子域上使用 Laravel Socialite 登录。后来我删除了该SESSION_DOMAIN
属性,因为它没有解决问题。
经过一番研究,我发现:
出现问题是因为我SESSION_DOMAIN
在.env文件中设置了 和。当我在本地环境登录期间这样做时,即使我在隐身选项卡中也会出现问题。虽然我可以删除然后再次重新加载隐身页面,但隐身选项卡的问题消失了。
我在Lumen中有一个错误消息的标准文件夹,类似于Laravel。问题是没有使用来自那里的消息。如何使Lumen使用翻译来格式化消息?
现在,当我转储$ validator-> errors()时,它不会格式化消息。
MessageBag {#223
#messages: array:4 [
"surname" => array:1 [
0 => "validation.required"
]
"mobile" => array:1 [
0 => "validation.required"
]
"password" => array:1 [
0 => "validation.min.string"
]
"email" => array:1 [
0 => "validation.email"
]
]
#format: ":message"
}
Run Code Online (Sandbox Code Playgroud)