我尝试更新我正在使用的Laravel项目 composer update
但它坚持下去 Updating dependencies (including require-dev)
所以我尝试了更新composer,dump-autoload之类的东西,但似乎没有任何效果.然后我以详细模式运行它:composer update -vvv
我注意到它在读这个json时挂了:
Reading path/to/Composer/repo/https---packagist.org/provider-cordoval$hamcrest-php.json from cache
Run Code Online (Sandbox Code Playgroud)
我试着在packagist.org上搜索cordoval/hamcrest-php而找不到它.这不是我的依赖项composer.json
搜索我的供应商文件夹,我注意到mockery/mockery
我使用的包需要hamcrest/hamcrest-php
,但我找不到任何引用的包cordoval
.
知道什么是错的,我怎么解决它,以便我可以做更新?
这是我的composer.json:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.2.*",
"iron-io/iron_mq": "dev-master",
"phpunit/phpunit": "4.2.*",
"mockery/mockery": "dev-master",
"xethron/migrations-generator": "dev-master",
"mailgun/mailgun-php": "dev-master"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [ …
Run Code Online (Sandbox Code Playgroud) 不久之后,我决定完全重做Laravel中的一个模型,但为了以防万一,我想保留文件的原始副本.所以我将它重命名为MyModel(OLD).php,并将其保留在新模型旁边的models文件夹中.
现在我对Laravel有了更好的理解,我意识到这不是一个好主意,但无论如何,一切似乎都能运作好几个月.然后今天,我对我的新模型中的一个函数做了一个小的更新(修改数据库查询),突然Laravel试图加载我的模型的旧副本.我终于将旧版本从models文件夹中移出并完全放在我的laravel应用程序之外的备份文件夹中,但现在Laravel抛出了错误:
include(pathToMyModels/MyModel (OLD).php): failed to open stream: No such file or directory
Run Code Online (Sandbox Code Playgroud)
参考ClassLoader.php的这一部分
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*/
function includeFile($file)
{
include $file;
}
Run Code Online (Sandbox Code Playgroud)
我尝试撤消对模型的修改,更改路由和控制器功能名称,清除laravel的缓存,清除浏览器缓存,使用不同的浏览器,但似乎没有任何工作,除了在调用它包含的类之前手动包含模型的php文件.我能做些什么才能让Laravel自动识别我的模型,就像我拥有的所有其他模型一样?
我想用Vue创建一个简单的表单生成器,其中用户单击菜单上的按钮以将不同的表单字段添加到表单。我知道,如果仅要添加一种类型的表单字段,我可以使用类似以下方法(https://jsfiddle.net/u6j1uc3u/32/)来完成:
<div id="app">
<form-input v-for="field in fields"></form-input>
<button type="button" v-on:click="addFormElement()">Add Form Element</button>
</div>
<script type="x-template" id="form-input">
<div>
<label>Text</label>
<input type="text" />
</div>
</script>
Run Code Online (Sandbox Code Playgroud)
和:
Vue.component('form-input', {
template: '#form-input'
});
new Vue({
el: '#app',
data: {
fields: [],
count: 0
},
methods: {
addFormElement: function() {
this.fields.push({type: 'text', placeholder: 'Textbox ' + (++this.count)});
}
}
})
Run Code Online (Sandbox Code Playgroud)
但是,如果表单字段的类型不只一种(输入,文件,选择等),该怎么办?我当时在想可能为每种类型构建一个不同的组件,但是那我将如何在单个表单元素列表中显示多种类型的组件呢?
我是否可以根据fields
数组中的数据创建一个具有不同类型子组件的组件?
还是有更好的方法来解决我所缺少的这种情况?我刚刚开始学习Vue,因此对您的帮助表示感谢!
我正在尝试将对象保存到我正在网站上构建的游戏的数据库中,但我不断收到此错误:
Creating default object from empty value
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的代码:
foreach( $input['items'] as $key=>$itemText ){
$item = ($input['itemIDs'][$key] === 'NA') ? new GameItem() : GameItem::find($input['itemIDs'][$key]);
// if updating this item, check that it is assigned to this game
if( !is_null($item->game_id) && $item->game_id != $game->id ){ continue; }
$item->game_id = $game->id;
$item->item = $itemText;
$item->answer = $input['answers'][$key];
$item->save();
}
Run Code Online (Sandbox Code Playgroud)
错误发生在if语句中.我尝试将其评论出来,然后错误发生在$ item-> game_id = $ game-> id; 线.
我已经var_dumped $ item和$ game,两者都是有效的Eloquent对象.我甚至var_dumped if语句的结果没有问题,所以我不知道发生了什么.
我只是注意到了
var_dump($item->toArray()); die();
Run Code Online (Sandbox Code Playgroud)
就在$ item-> save()之前; 线,它不会抛出任何错误,并告诉我阵列就好了.
那可能是什么问题呢?我想这与保存项目有关,但我根本不理解.
我有一个我尝试使用 TortoiseSVN 提交的文件,但它给了我工作副本路径不存在的错误,我必须先更新我的工作副本。所以我尝试了多种方法:
毕竟这一切,我仍然得到同样的错误。由于错误,我什至无法重新结帐:
“存储库中不存在工作副本路径‘path/to/file’。”
在这一点上,我完全没有想法。帮助!
我正在使用Vuetify的v-btn按钮组件,并通过color
道具设置了各种颜色。用户单击按钮后,我设置disabled
为,true
因此他们无法再次单击它,但是按钮失去了颜色并变灰。
有什么方法可以禁用按钮而不将其颜色更改为灰色?
如何确定模型是否在Laravel 4.2中使用软删除?
在Laravel API中我找到了函数isSoftDeleting(),但显然它已经从Laravel 4.2中删除,因为它使用了SoftDeletingTrait.
我如何确定模型现在是否使用软删除?
因此,我在多个相互通信的域上有多个项目,所有项目都映射到我的本地 IP 127.0.0.1。使用 Xdebug 调试一个时,有时会出现一个“传入连接”弹出窗口,用于我拥有的其他项目之一。
我通常告诉它不要听那些连接,因为我只希望它听我目前正在工作的项目,但像个白痴一样,我在调试单独的 Laravel 项目时不小心接受了一个 WordPress 项目的连接.
现在每次我想调试我的 Laravel 项目,至少是它连接到 WordPress 的部分,我必须处理调试被 WordPress 的中断 wp-cron.php
。我一生都无法找到一种方法来告诉 PhpStorm 不要听来自那个 WordPress 项目的连接,因为我不小心允许了它一次。
有没有办法做到这一点?
或者例如,如果我有domain1.test
and domain2.test
,有什么方法可以告诉 PhpStorm 只听domain1.test
而不是任何其他域(或删除其他域,如果接受?)
我正在尝试将 delve 安装在我的 docker 容器中以调试 Go 应用程序。
在我的 Dockerfile 中我放入:
RUN go get github.com/go-delve/delve/cmd/dlv
Run Code Online (Sandbox Code Playgroud)
但是当我进入 docker 容器并运行时dlv
它说
bash: dlv: command not found
Run Code Online (Sandbox Code Playgroud)
go get github.com/go-delve/delve/cmd/dlv
我尝试通过直接在容器中运行来手动安装它。它结束时没有任何输出。但我仍然收到相同的“命令未找到”错误
看起来根本没有安装 delve。这是我的环境变量和容器内的 Go bin 目录:
root@5d8aef1f6721:/my/project# printenv | grep GO
GOFLAGS=-mod=vendor
GOLANG_VERSION=1.19.1
GOROOT=/usr/local/go
GOPATH=/go
root@5d8aef1f6721:/my/project# printenv | grep PATH
PATH=/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
GOPATH=/go
root@5d8aef1f6721:/my/project# ls -la /go/bin
total 23540
drwxrwxrwx 1 root root 4096 Sep 20 10:29 .
drwxrwxrwx 1 root root 4096 Sep 20 10:28 ..
-rwxr-xr-x 1 root root 24085739 Sep 20 …
Run Code Online (Sandbox Code Playgroud) 如何在Laravel 4中验证上传文件的数组?我已经在表单中设置它以允许多个文件,并且我已经测试了文件存在于Input :: file('files')数组中.但是如何验证每个文件?
这是我尝试过的:
$notesData = array(
'date' => Input::get('date'),
'files' => Input::file('files')
);
// Declare the rules for the form validation.
$rules = array(
'date' => 'Required|date_format:Y-m-d',
'files' => 'mimes:jpeg,bmp,png,pdf,doc'
);
// Validate the inputs.
$validator = Validator::make($notesData, $rules);
// Check if the form validates with success.
if ($validator->passes())
{
// Redirect to homepage
return Redirect::to('')->with('success', 'Validation passed!');
}
// Something went wrong.
return Redirect::to(URL::previous())->withErrors($validator)->withInput(Input::all());
Run Code Online (Sandbox Code Playgroud)
我期望Validator抱怨在数据数组中传递一组文件,但它只是通过了验证,即使我发送的文件是一个mp3.当我尝试上传多个文件时,它给出了一个无关的错误,即需要日期字段(尽管日期字段是自动填充的).
我对Laravel很新.我该怎么做才能让这个工作?
更新:我发现问题的一部分是我的upload_max_filesize和post_max_size,我修复了.我也试过动态地将文件添加到数组中,如下所示:
$notesData = array(
'date' => Input::get('date')
);
$i=0;
foreach(\Input::file('files') as …
Run Code Online (Sandbox Code Playgroud) 我知道如何使用append-icon
属性在输入的末尾添加图标,如下所示:
new Vue({
el: '#app'
})
Run Code Online (Sandbox Code Playgroud)
<link href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/vuetify@1.3.8/dist/vuetify.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@1.3.8/dist/vuetify.min.js"></script>
<div id="app">
<v-text-field
label="Answer (optional)"
append-icon="fas fa-times"
@click:append="$emit('remove-answer')"
></v-text-field>
</div>
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法像在Bootstrap中那样附加多个图标或按钮?
我想添加一些具有不同操作的图标,但是到目前为止,我还没有找到解决方案...
我正在将 Laravel 5.0 应用程序迁移到 5.4 并尝试在我的本地环境中测试邮件。为此,我一直使用Anitix SMTP Imposter。这是我的邮件配置在我的 .env 中的样子:
MAIL_DRIVER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=25
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPT=null
Run Code Online (Sandbox Code Playgroud)
这一直适用于所有以前版本的 Laravel(4、4.2、5.0),但突然使用 5.4 我收到以下错误:
AbstractSmtpTransport.php 第 383 行中的 Swift_TransportException:预期响应代码为 220,但得到代码“500”,消息为“500 命令无法识别”
我试过禁用 Avast,使用Papercut等替代程序,使用 SSL 或 TLS 玩配置,但我无法弄清楚是什么导致了这种情况。有任何想法吗?
laravel ×5
eloquent ×2
model ×2
php ×2
vue.js ×2
vuetify.js ×2
append ×1
button ×1
colors ×1
commit ×1
components ×1
composer-php ×1
delve ×1
disable ×1
docker ×1
go ×1
hamcrest ×1
input ×1
javascript ×1
json ×1
local ×1
phpstorm ×1
repository ×1
smtp ×1
soft-delete ×1
svn ×1
swiftmailer ×1
tortoisesvn ×1
working-copy ×1
xdebug ×1