我正在使用LARAVEL 5.2并开发ADMIN面板并尝试在LARAVEL中将redis集成在1.0上.当我尝试设置变量名称和值时,它会提示错误: 无法建立连接,因为目标计算机主动拒绝它.[TCP://127.0.0.1:6379]
我在下面给出了配置更改:
1)在config/session.php文件中我用redis替换文件
('driver'=> env('SESSION_DRIVER','redis'))
2)在config下的'aliases'数组下/app.php文件REDIS Facades已经包含
('Redis'=> Illuminate\Support\Facades\Redis :: class)
3)在.ENV文件中我在SESSION_DRIVER变量中用redis替换了文件
4)在database.php文件中,配置为redis服务器如下:
'redis' => [
'cluster' => true,
'default' => [
'host' => env('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
]
Run Code Online (Sandbox Code Playgroud)
以下是我的控制器代码:
<?php
namespace App\Http\Controllers\Administrator;
use Redis;
use App\Http\Requests;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class MyController extends Controller
{
public function __construct() {}
public function myProfile(Request $request)
{
$redis = Redis::connection();
$adminName = $request->route('admin_name');
if ($redis) {
echo 'connection …Run Code Online (Sandbox Code Playgroud) 我的本地存储中有文件public/images/users,我想AWS S3使用 Laravel 文件系统将这些文件移动到云存储。
Route::get('upload-local-files-to-s3', function() {
$documentFiles = Storage::disk('public')->files('images\\users\\');
foreach ($documentFiles as $documentFile){
$filesystem = new Filesystem();
$contents = $filesystem->get($documentFile);
Storage::disk('s3')->put('documents\\'. $documentFile, $contents)
echo $documentFile . ' Uploaded. '. '<br>';
}
});
Run Code Online (Sandbox Code Playgroud)
此代码将文件上传到,但当我想在文档文件夹中上传文件时,S3它会在其中创建新文件夹。
如何从上面的变量名创建文件对象?
因为我想使用文件对象中的以下函数。documents/images/users$documentFile
getClientOriginalExtension()
getClientMimeType()
getFilename()
getClientOriginalName()
Run Code Online (Sandbox Code Playgroud) 我目前正在使用基于数据库的会话驱动程序,以允许我们在我们的应用程序中存储一些持久数据,
我们像这样创建会话:
Auth::loginUsingId($user->id);
$payload = [
'user_id' => $user->id,
'lobby_id' => $user->room_id,
'name' => $user->name,
'host' => $user->host,
'avatar' => $user->avatar
];
session()->put('user', $payload);
session()->save();
$session_id = session()->getId();
$cookie = cookie('app_cookie', $session_id, 86400 * 30, null, null, false, false);
Run Code Online (Sandbox Code Playgroud)
我们使用创建的 cookie 作为识别用户的一种方式。
上面我们正在创建初始会话,当用户提交我们想要添加到用户已完成的当前会话的表单时。
所以我想我可以做这样的事情,
session()->put('user.completed_forms', 'form-1');
Run Code Online (Sandbox Code Playgroud)
我会假设这会在数据库中添加一个新的键值对,它会被编码,然后负载会在数据库中更新,但是,我看到一个新行完全是用新的 id 创建的。
我做错了什么是否可以更新数据库保存的会话有效负载而不在数据库中创建新行?由于用户 ID 可能有 000 行,我们在 cookie 中使用会话 ID,因此也不希望每个服务器请求都写入一个新的 cookie。
当我想从表中获取数据时出现错误。
我的控制器:
public function admin()
{
$users = User::with('subs')->get();
return view('admin')->response()->json([
'users' => $users,
], 200);
}
Run Code Online (Sandbox Code Playgroud)
我的 vue.js 脚本:
export default {
data() {
return {
users: []
}
},
methods: {
showUsers() {
axios.get('admin/routes').then(response => {
this.users = response.data.users;
});
}
},
mounted() {
this.showUsers();
}
}
Run Code Online (Sandbox Code Playgroud)
我的刀片html代码:
<tr v-for="user in users">
<td>{{ user.id }}</td>
<td>{{ user.name }}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
方法 Illuminate\View\View::response 不存在。
当我想从表中获取数据时。
我一直在开发Laravel应用程序,一切正常,直到进行拉取和调整基准为止。之后,它停止工作,现在我只能看到404页面。
我试图重新配置Apache,但是那没有帮助。
这是我的Apache配置。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName adminuistore.com
ServerAlias www.adminuistore.com
DocumentRoot "/var/www/adminuistore/public"
<Directory "/var/www/adminuistore/public">
Options FollowSymLinks
ReWriteEngine On
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我还尝试将var_dump语句放入index.php文件中,但是仍然没有输出。
我在docker中运行Apache,这是docker-compose.yml文件
version: "3"
services:
webserver:
build:
context: ./bin/webserver
container_name: '7.1.x-webserver'
restart: 'always'
ports:
- "80:80"
- "443:443"
links:
- mysql
- mongodb
volumes:
- ${DOCUMENT_ROOT-./www}:/var/www/adminuistore
- ${DOCUMENT_ROOT-./wwwdata}:/var/www/html
- ${PHP_INI-./config/php/php.ini}:/usr/local/etc/php/php.ini
- ${VHOSTS_DIR-./config/vhosts}:/etc/apache2/sites-enabled
- ${LOG_DIR-./logs/apache2}:/var/log/apache2
mongodb:
image: mongo
ports:
- 27017:27017
volumes:
- ${MONGO_DATA_DIR-./data/mongo}:/data/db
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=admin
mysql:
build: …Run Code Online (Sandbox Code Playgroud) 我目前在 ubuntu 16.04 服务器上托管一个应用程序...但是当我尝试在新的 ubuntu 18.04 服务器上部署相同的代码时,我的 apache 日志出现以下错误
PHP致命错误:未捕获的反射异常:类视图不存在于/var/www/xxxxxxxxxxxx/public_html/vendor/laravel/framework/src/Illuminate/Container/Container.php:788
导航到我的 Laravel 项目中的那行代码是
$reflector = new ReflectionClass($concrete);
Run Code Online (Sandbox Code Playgroud)
我清除了引导程序/缓存中的配置并运行了 composer dump-autoload 无济于事
我正在使用 Laravel 创建一个 api,我正在寻找一种简单的懒惰方式来注册 Api 资源。我目前正在像这样定义我的路线:
Route::apiResource('categories', 'CategoryController')->only(['index', 'show']);
Run Code Online (Sandbox Code Playgroud)
我检查了Laravel 的控制器文档,我看到了apiResources可以一次创建多个 api 资源的方法。
目标:是能够使用这样apiResources的only方法
Route::apiResources(['categories' => 'CategoryController', 'products' => 'ProductController'])->only(['index', 'show']);
Run Code Online (Sandbox Code Playgroud)
当前结果:
在 null 上调用成员函数 only()
我正在尝试C在 Visual Studio Code 中调试程序。
在我的目录中,我有 2 个文件test.c以及Makefile包含json文件的.vscode文件夹。
我在过去三个小时内尝试配置这些文件,搜索各种论坛和博客,但似乎没有任何效果。launchtasks
我可以使用这两个 json 文件进行编译和运行。
程序运行并正确显示输出,但不会在断点处停止,在程序执行期间,我无法添加断点,并且已添加的断点被禁用,并显示以下消息。
包含此断点的模块尚未加载或无法获取断点地址。
VSCode 似乎无法test.c在调试阶段找到我的文件,即使它位于同一目录中。如果有人能告诉我正确的方法,那就太好了。
在这里,我附加了文件夹中文件的内容。
launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/test",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": …Run Code Online (Sandbox Code Playgroud) 在我的 Laravel 5.8 应用程序中,我有:
config/app.php
'date_format' => 'd/m/Y',
'date_format_js' => 'dd/mm/yy',
Run Code Online (Sandbox Code Playgroud)
模型
use Carbon\Carbon;
class HrHolidayDate extends Model
{
protected $table = 'hr_holiday_dates';
protected $fillable = [
'holiday_name',
'holiday_date',
];
protected $dates = [
'holiday_date'
];
protected $casts = [];
public function setHolidayDateAttribute($input)
{
$this->attributes['holiday_date'] =
Carbon::createFromFormat(config('app.date_format'), $input)->format('Y-m-d');
}
public function getHolidayDateAttribute($input)
{
return Carbon::createFromFormat('Y-m-d', $input)
->format(config('app.date_format'));
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试在 Blae 视图中对其进行格式化,如下所示:
view
@foreach($holidays as $key => $holiday)
<td>
{{Carbon\Carbon::parse($holiday->holiday_date)->format('d-m-Y') ?? '' }}
</td>
@endforeach
Run Code Online (Sandbox Code Playgroud)
当我想渲染视图刀片时,出现此错误:
[2020-07-15 11:57:56] production.ERROR: DateTime::__construct(): …
我正在运行Laravel Valet以在本地托管站点,并运行Laravel Mix来编译资产并使用 Webpack 开发服务器执行 HMR
我.dev通过以下方式在本地保护了该站点
valet secure
Run Code Online (Sandbox Code Playgroud)
{{ mix('js/app.js') }} 运行时调用没问题npm run watch
但是每当我想通过运行hotnpm 脚本来利用热重载时,我都会得到这个
GET https://localhost:8080//css/app.css net::ERR_CERT_AUTHORITY_INVALID
GitHub问题建议添加--https 标志,我试过了,也--http
我什至通过--disable-host-check标志禁用了主机检查并清除了所有可能的缓存,甚至尝试了新的git clone但无济于事
这是我的 package.json
{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --https --disable-host-check --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm …Run Code Online (Sandbox Code Playgroud)