我需要以两种方式路由到某个组件 - 一个带有参数,一个没有.我搜索了可选参数并且不知何故找不到多少信息.
所以我的路线:
{
path: '/offers/:member',
component: Offers,
name: 'offers',
props: true,
meta: {
guest: false,
needsAuth: true
}
},
Run Code Online (Sandbox Code Playgroud)
当我以编程方式用param调用它时,一切都很好
this.$router.push({ path: /offers/1234 });
Run Code Online (Sandbox Code Playgroud)
但是我也需要通过这样的导航来调用它
<router-link to="/offers">Offers</router-link>
Run Code Online (Sandbox Code Playgroud)
该offers组件接受道具
props: ['member'],
Run Code Online (Sandbox Code Playgroud)
和组件一样使用
<Offers :offers="data" :member="member"></Offers>
Run Code Online (Sandbox Code Playgroud)
现在,我设法让它工作的丑陋方式是重复路线,并使其中一个不采取道具:
{
path: '/offers',
component: Offers,
name: 'offers',
props: false,
meta: {
guest: false,
needsAuth: true
}
},
Run Code Online (Sandbox Code Playgroud)
它确实有效,但我对它不满意 - 在开发模式下,vuejs警告我 [vue-router] Duplicate named routes definition: { name: "offers", path: "/offers" }
当然有一种方法可以在组件调用中执行可选参数:member="member"吗?
当我尝试在Android Studio的设备上运行测试时,我开始收到错误:
Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable ...
Run Code Online (Sandbox Code Playgroud)
我环顾四周,从gradle网站上发现最新版本是2.10,我尝试将其添加到我的依赖项中,没有运气.我尝试了各种版本号,其中包含以下各种错误:
Could not find com.android.tools.build:gradle:2.1
Searched in the following locations ...
Run Code Online (Sandbox Code Playgroud)
我从所有的搜索中了解到它显然是一个错误版本的gradle - 但是我应该使用的当前版本标签是什么,我怎么知道它安装在我的机器上?我一直在更新Android Studio.
所以我目前在build.gradle中:
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-alpha1'
}
Run Code Online (Sandbox Code Playgroud) android gradle android-studio android-gradle-plugin gradle-plugin
我正在尝试使用反应数据mixin for vue-chartjs
用于设置初始数据的挂载函数正常工作,我可以使用API响应正确查看图表:
fetchSessionTrends() {
axios.get(endpoint)
.then(({data}) => {
this.sessions = data.map(session => session.sessions);
this.sessionLabels = data.map(label => label.date);
this.loaded = true;
});
},
Run Code Online (Sandbox Code Playgroud)
数据:
data() {
return {
endpoint: 'public/api/sessions',
sessions: [],
sessionLabels: [],
loaded: false,
daysFilter: 14
};
},
Run Code Online (Sandbox Code Playgroud)
我显示带有文本字段的图表以提供反应部分 - 期望是它再次调用端点并接收新响应
<div class="col-md-2 session-filter">
<div class="input-group">
<input type="text" class="form-control" placeholder="days..." v-model="daysFilter">
<span class="input-group-btn">
<button class="btn btn-secondary" type="button" @click="refreshSessions">Go</button>
</span>
</div>
</div>
<line-chart v-if="loaded" :chart-data="sessions" :chart-labels="sessionLabels"></line-chart>
Run Code Online (Sandbox Code Playgroud)
然而,要测试反应部分,现在我只是直接更改数据数组以查看它是如何工作的:
refreshSessions() {
this.sessions = [1, 2, 3];
this.sessionlabels = ["june", …Run Code Online (Sandbox Code Playgroud) 我想将表格字段并排放置在Yii2中,采用2x2网格.
我正在使用bootstrap/ActiveForm
<?php $form = ActiveForm::begin([
'layout' => 'horizontal',
'action' => ['index'],
'method' => 'get',
'fieldConfig' => [
'horizontalCssClasses' => [
'label' => 'col-sm-2',
'offset' => 'col-sm-offset-2',
'wrapper' => 'col-sm-4',
],
],
]); ?>
Run Code Online (Sandbox Code Playgroud)
这些字段基本上是一系列日期小部件
<?= $form->field($model, 'saleFrom')->widget(DatePicker::className(), [
'options' => ['placeholder' => 'TO'],
'pluginOptions' => [
'autoclose' => true,
'format' => 'yyyy-mm-dd'
]
]); ?>
Run Code Online (Sandbox Code Playgroud)
然而,所有设法做的就是将所有四个字段对齐div的左边 - 我无法从文档中找出如何使用Yii2选项来执行此操作而无需手动添加自定义css.
我觉得奇怪的是,关于将Yii2应用程序部署到共享主机服务器的注意事项很少(如果有的话)的细节。
有人对此有一些步骤,技巧和注意事项吗?
您是否遵循某个流程将问题/错误降低到最低限度?
数据库如何迁移(随数据一起迁移)?我假设我可以导出/导入数据库,直接复制Yii应用程序文件夹,但这似乎太简单了吗?
我正在尝试更改工具提示的背景颜色,但似乎只能更改键:https://jsfiddle.net/1ez0Lo8a/ 指的是当您将鼠标悬停在栏上时工具提示的黑色背景。
tooltips: {
yAlign: 'bottom',
callbacks: {
labelColor: function(tooltipItem, chart) {
return {
backgroundColor: 'rgb(255, 0, 0)'
}
},
}
Run Code Online (Sandbox Code Playgroud)
此外,正如您所看到的,我已经设法删除了该轴 - 但这些设置都没有删除最底部的水平轴。任何人都可以建议如何删除那个吗?
据我们所知,
<?= $form->field($model, 'name_field')->textInput() ?>
Run Code Online (Sandbox Code Playgroud)
在模型/表中添加连接到“name_field”的文本字段。
我想在模型/表中添加一个字段,然后在失去焦点时运行一些 JS 来计算其他字段。
您如何首先添加未连接到模型的自由文本字段?其次,有没有人有将 JS/Jquery 添加到 _form.php 的例子?
我无法理解如何让Laradock与mysql db一起正常工作.
我已经关注了laradock docs并安装了所有东西,使用了旋转容器
docker-compose up -d nginx mysql
Run Code Online (Sandbox Code Playgroud)
我有这样的多项目版本布局
project
+laradock-spa
Run Code Online (Sandbox Code Playgroud)
php端似乎工作,我可以得到laravel欢迎页面,但是连接数据库导致我的问题.
首先,我应该在哪里运行php artisan命令php artisan migrate?是应该从我的机器在项目文件夹中运行,还是从docker容器中运行?
当我从我的项目文件夹运行它时,它可以工作,我可以进入mysql容器并查看初始数据库表,比如migration,和user.
但是,我无法获得初始POST到db在Postman中工作 - 我收到错误 SQLSTATE[HY000] [2002] No such file or directory (SQL: insert into users (...
所以我想也许我应该从工作区容器中运行migrate命令,所以我打入工作区,但从这里php artisan migrate命令错误[Illuminate\Database\QueryException]
SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schem
a.tables where table_schema = spa and table_name = migrations)
正如我所说的,我可以成功进入mysql容器,使用root密码登录数据库,运行第一次迁移后,我可以看到里面的表.
docker ps 显示所有容器.
有人可以解释它是如何工作的以及如何解决这个问题?我不确定我应该在哪里运行哪些命令,以及容器如何相互通信.但基本上,我怎样才能让mysql数据库在laravel项目中工作?
顺便说一下,我也在PC上运行本地mysql,也许这会导致一些冲突/混乱?
我正在Win10上运行这一切.
在 Laravel 环境中,我有一组时间,我添加了几分钟,但它没有给我我所期望的结果。
在下面的array_map函数中发生了一些奇怪的addMinutes事情
$d = array_map(function ($date) {
$base = Carbon::parse($date['time']);
return [
'start' => $base->addMinutes(150)->toDateTimeString(),
'end' => $base->addMinutes(190)->toDateTimeString()
]
}, $dates);
Run Code Online (Sandbox Code Playgroud)
所以 150 分钟是 2 小时 30 分钟,190 分钟是 3 小时 10 分钟,所以我假设以下
2018-07-05 19.20.00 (+150 mins) -> start = 2018-07-05 21.50
(+190 mins) -> end = 2018-07-05 22.30
Run Code Online (Sandbox Code Playgroud)
我实际上得到了
2018-07-05 19.20.00 (+150 mins) -> start = 2018-07-05 21.30
(+190 mins) -> end = 2018-07-06 00.40
Run Code Online (Sandbox Code Playgroud)
任何人都可以看到我在碳处理过程中遗漏的明显内容吗?我很确定这与 Carbon 有关,因为我将上面的内容重组array_map为 aforeach并得到了相同的结果 …
我有这样的模型工厂
$factory->define(App\Sale::class, function (Faker\Generator $faker) {
return [
'unit' => $faker->randomDigit,
'street_no' => $faker->randomDigit,
'street_name' => $faker->streetName,
'street_type' => $faker->streetSuffix,
'suburb' => $faker->randomElements(['Melton South','Melton West','Rye']),
'postcode' => $faker->numberBetween($min=1000, $max=4000),
'sale_date' => $faker->dateTimeThisYear,
];
});
Run Code Online (Sandbox Code Playgroud)
数据播种机运行它
factory(App\Sale::class, 5)->create();
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行它时,php artisan db:seed我收到了错误
[Illuminate\Database\QueryException]
Array to string conversion (SQL: insert into `sales` (`unit`, `street_no`,
`street_name`, `street_type`, `suburb`, `postcode`, `sale_date`,
`updated_at`, `created_at`)
values (7, 1, Labadie Centers, Bridge, Rye, 3758, 2016-08-12 1
5:02:07, 2017-05-23 13:16:56, 2017-05-23 13:16:56))
Run Code Online (Sandbox Code Playgroud)
错误sql没有显示我能看到的任何数组.
当我将该sql粘贴到我的数据库应用程序并运行它时,为了使其工作,我必须引用所有字符串,但laravel docs在使用faker时不说任何关于它的内容?我在模型工厂中遗漏了什么吗?
EXI
我在节点中有一个成功从API接收数据的get请求.
当我将响应直接传递给这样的文件时,它可以正常工作,创建的文件是一个有效的,可读的pdf(正如我希望从API接收的那样).
var http = require('request');
var fs = require('fs');
http.get(
{
url:'',
headers:{}
})
.pipe(fs.createWriteStream('./report.pdf'));
Run Code Online (Sandbox Code Playgroud)
很简单,但是如果我像这样使用请求的事件发射器,则文件会被破坏
http.get(
{
url:'',
headers:{}
})
.on('error', function (err) {
console.log(err);
})
.on('data', function(data) {
file += data;
})
.on('end', function() {
var stream = fs.createWriteStream('./report.pdf');
stream.write(file, function() {
stream.end();
});
});
Run Code Online (Sandbox Code Playgroud)
我已经尝试过编写这个文件的所有方式,它总是以一个完全空白的pdf结尾 - pdf有效的唯一时间是通过管道方法.
当我控制台记录事件时,序列似乎是正确的 - 即,所有块接收,然后是最后的end火.
在管道之后,它无法做任何事情.什么是管道对写入流的不同做法?