我正在使用 php ZipArchive,但遇到了一个简单的问题。
我需要创建新文件,如果存在同名的文件,我需要覆盖它。
我的问题是,如果我使用此代码
if ($zip->open($packageFileName, ZipArchive::OVERWRITE) === TRUE)
Run Code Online (Sandbox Code Playgroud)
它将覆盖任何具有相同名称的现有文件,但是如果具有这样名称的文件不存在那么什么都不会发生,如果 case 返回 false 并且我用这个 if case 中的文件填充 zip 文件,但是因为如果文件不在上面的磁盘失败并且没有创建文件。
如果我这样做
if ($zip->open($packageFileName, ZipArchive::CREATE) === TRUE)
Run Code Online (Sandbox Code Playgroud)
它将返回 true 并且文件将被创建或更新,但我不想更新文件,我需要覆盖文件。
所以我有点卡住了,我想覆盖文件,如果它不存在,我想创建它,有没有办法在一行中执行此操作,因此我不必在检查文件是否存在的多行中进行检查,并且然后选择 CREATE 或 OVERWRITE,为什么没有 CREATE_OVERWRITE 常量?
我创建了这个提供者:
php artisan make:provider ShortcodesServiceProvider
然后我不得不删除该文件,但现在我得到了
C:\xampp\htdocs\listagram\vendor\laravel\framework\src\Illuminate\Foundation\ProviderRepository.php 第 146 行中的 FatalThrowableError:
找不到类“App\Providers\ShortcodesServiceProvider”
手动删除我创建的提供程序文件后,如何重置服务提供程序?
如何计算重复项并按最多重复项排序并显示有多少重复项?
我有一个包含一些数字的表格,希望对重复项后的数字进行排序,并为每个数字打印它有多少重复项。
我怎样才能做到这一点?
我的表结构:
Schema::create('random_numbers', function (Blueprint $table) {
$table->bigincrements('id');
$table->biginteger('number')->unsigned();
$table->timestamps();
});
Run Code Online (Sandbox Code Playgroud) 当我在 win10 php7.2 nginx 表达式上本地开发时,像这样工作得很好
<div class="{{ $menuclass or 'menu'}}">
Run Code Online (Sandbox Code Playgroud)
这使
<div class="menu">
Run Code Online (Sandbox Code Playgroud)
但是一旦我通过 laravel forge 将它部署到 ubuntu 机器,它就无法工作,我得到了这个
<div class="1">
Run Code Online (Sandbox Code Playgroud)
似乎不是这样做:
isset($menuclass ) ? $menuclass : 'menu'
Run Code Online (Sandbox Code Playgroud)
它只返回 1
任何想法为什么?
此功能在博客上发表:https : //laravel-news.com/blade-or-operator
它是否在 Laravel 的后续版本中被弃用?
我发现我无法更改.env文件中的内容,并让Laravel在下次运行时选择它。例如我改变了
APP_ENV=production
Run Code Online (Sandbox Code Playgroud)
至
APP_ENV=local
Run Code Online (Sandbox Code Playgroud)
跑步时
artisan migrate
Run Code Online (Sandbox Code Playgroud)
我仍然被问到是否确定要在生产环境中运行迁移。有没有一种解决方法,而不必每次更新.env文件时都清除缓存?
我正在使用 SweetAlert2 javascript 库来显示弹出窗口。SweetAlert2 是 SweetAlert 的一个分支,不再维护。SweetAlert2 允许我添加这样的单选按钮
// inputOptions can be an object or Promise
var inputOptions = new Promise(function(resolve) {
resolve({
'#ff0000': 'Red',
'#00ff00': 'Green',
'#0000ff': 'Blue'
});
});
swal({
title: 'Select color',
input: 'radio',
inputOptions: inputOptions,
inputValidator: function(result) {
return new Promise(function(resolve, reject) {
if (result) {
resolve();
} else {
reject('You need to select something!');
}
});
}
}).then(function(result) {
swal({
type: 'success',
html: 'You selected: ' + result
});
})
Run Code Online (Sandbox Code Playgroud)
SweetAlert2 为无线电输入指定“swal2-radio”名称,如下所示
<input id="swal2-radio-1" type="radio" …Run Code Online (Sandbox Code Playgroud) 我尝试运行composer dump-autoload,然后运行迁移并收到此错误
找不到类“CreateContentTemplateBlocksTable”
我将文件重命名为'CreateTemplateBlocksTable'.
为什么 laravel 还在寻找旧的文件名?某处有缓存吗?
如果签名无效,我必须中止某些操作,并且我还想向呈现它的视图发送一条消息。我记得一年前,我在之前的一个项目中能够做这样的事情。但现在当我尝试这个时
if (!$request->hasValidSignature()) {
abort(401, 'Signature is not valid.');
}
Run Code Online (Sandbox Code Playgroud)
我收到一条错误,指出 $message 不可用
这是 abort 函数的定义,因此很明显它将消息作为输入。
public function abort($code, $message = '', array $headers = [])
{
if ($code == 404) {
throw new NotFoundHttpException($message);
}
throw new HttpException($code, $message, null, $headers);
}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么我会收到此错误:
ErrorException (E_ERROR)
Undefined variable: message (View:
C:\laragon\www\laraone\resources\views\errors\401.blade.php)
Run Code Online (Sandbox Code Playgroud)
这是我的 401.blade.php 使用该变量的一部分......
<div class="content">
<div class="title">401</div>Unauthorized action, {{ $message }}
</div>
Run Code Online (Sandbox Code Playgroud) 当向表中插入一些行时,我收到此错误:
SQLSTATE[22007]:无效的日期时间格式:1292 不正确的日期时间值:第 1 行的列“created _at”的“2017-03-26 02:00:00”
我以正确的格式插入:Ymd H:i:s 那么是什么导致了问题?
更新:
CREATE TABLE `posts` (
`id` bigint(20) UNSIGNED NOT NULL,
`title` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`excerpt` text COLLATE utf8mb4_unicode_ci,
`body` text COLLATE utf8mb4_unicode_ci NOT NULL,
`image_path` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`image` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`slug` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`markdown` tinyint(1) NOT NULL DEFAULT '0',
`published` tinyint(1) NOT NULL DEFAULT '0',
`views` int(10) UNSIGNED NOT NULL DEFAULT '0',
`user_id` bigint(20) UNSIGNED NOT NULL,
`published_at` datetime …Run Code Online (Sandbox Code Playgroud) 我需要覆盖 laravel 的默认登录功能,但是我对我在那里找到的代码感到困惑。我不明白 laravel AuthenticatesUsers.php 如何验证用户是否存在于 db 中,然后对用户进行身份验证。
我在AuthenticatesUsers.php 中使用了这个函数
/**
* Attempt to log the user into the application.
*
* @param \Illuminate\Http\Request $request
* @return bool
*/
protected function attemptLogin(Request $request)
{
return $this->guard()->attempt(
$this->credentials($request), $request->filled('remember')
);
}
Run Code Online (Sandbox Code Playgroud)
我想我需要在 auth/LoginController.php 中覆盖这个函数
但我不明白它是如何工作的。在哪里guard()和attempt()实施,我想真正的行动发生在那里。我需要为登录添加另一个条件。
有人了解laravel的默认登录是如何工作的吗?和这两个功能guard()和attempt(),例如尝试在 AuthenticatesUsers.php 本身内部没有实现,我相信它的这个函数我应该真正覆盖。
我在哪里可以找到它的实现?
我需要在流明项目中使用中间件。到目前为止,我一直在与Laravel合作,但是现在我正在使用流明的项目中。
此处的文档:https : //lumen.laravel.com/docs/5.4/middleware
给我们
$app->get('admin/profile', ['middleware' => 'auth', function () {
//
}]);
Run Code Online (Sandbox Code Playgroud)
而我的路线看起来像这样
$app->get('/', 'UsersController@all');
Run Code Online (Sandbox Code Playgroud)
我已经试过了:
$app->get('/', ['middleware' => 'haspermission:backend-users-list'], 'UsersController@all');
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
如果我没有在路由中直接使用函数返回一些数据,正确的方法是什么?
laravel ×8
laravel-5 ×3
php ×3
datetime ×1
javascript ×1
jquery ×1
lumen ×1
migration ×1
mysql ×1
sweetalert ×1
sweetalert2 ×1
ziparchive ×1