我想从 vue 组件打印一些内容。例如,从以下代码段中,我想打印v-card-text
id 为的元素#print
:
new Vue({
el: '#app',
data() {
return {
dialog: false
}
},
methods: {
print() {
var prtContent = document.getElementById("print");
var WinPrint = window.open('', '', 'left=0,top=0,width=800,height=900,toolbar=0,scrollbars=0,status=0');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
}
}
})
Run Code Online (Sandbox Code Playgroud)
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vuetify/1.2.0/vuetify.min.css" />
</head>
<body>
<div id="app">
<v-app id="inspire">
<v-layout row justify-center>
<v-dialog v-model="dialog" persistent max-width="290">
<v-btn slot="activator" color="primary" dark>Open Dialog</v-btn>
<v-card>
<v-card-title class="headline">Print This:</v-card-title>
<v-card-text id="print">Lorem ipsum dolor sit amet.</v-card-text>
<v-card-actions>
<v-spacer></v-spacer> …
Run Code Online (Sandbox Code Playgroud)我有一个包含表单的vue模板:
<form id="logout-form" :action="href" method="POST" style="display: none;">
{{ csrf_field() }}
</form>
Run Code Online (Sandbox Code Playgroud)
在laravel中,表单必须定义csrf_field().但是在一个vue组件中,该语句{{ csrf_field() }}
意味着我有一个csrf_field
在我的vue实例中命名的方法,而我正在调用它.
在这种情况下如何添加csrf_field?
我有这样的声明:
App\User::with('client')->find(2)->makeHidden('client.phone_no');
Run Code Online (Sandbox Code Playgroud)
我想从关系中隐藏某些列,但我不能用 来做到这一点makeHidden()
,因为它只接受而Model
不是关系的参数。
如何从关系中隐藏一些列?
我已经开始从头开始学习VueJS。我正在遵循他们的官方指南。但我被困在这里:https : //vuejs.org/v2/guide/#Handling-User-Input
在这个例子中...
var app5 = new Vue({
el: '#app-5',
data: {
message: 'Hello Vue.js!'
},
methods: {
reverseMessage: function () {
this.message = this.message.split('').reverse().join('')
}
}
})
Run Code Online (Sandbox Code Playgroud)
..如何message
直接访问属性而不引用任何data
对象?如果this
关键字是指当前Vue的情况下,不应在message
财产被这样访问:this.data.message
?
考虑以下示例:
({
name: "John Doe",
data: {
message: "Hello World"
},
greet: function(){
console.log("I am " + this.name);
console.log("I have a message for you: " + this.data.message); //see here
}
}).greet();
Run Code Online (Sandbox Code Playgroud)
这就是我本来可以使用Vanilla JavaScript访问属性的方式。有人可以让我了解幕后发生的事情吗?
我在 Laravel 应用程序中使用tymondesigns/jwt-auth包进行身份验证。我的 AuthController 看起来像这样:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Http\Resources\UserResource;
use Illuminate\Http\Request;
use Tymon\JWTAuth\Contracts\Providers\Auth;
use Tymon\JWTAuth\Facades\JWTAuth;
class AuthController extends Controller {
public $auth;
/**
* Create a new AuthController instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('jwt', ['except' => ['login']]);
}
/**
* Get a JWT via given credentials.
*
* @return \Illuminate\Http\JsonResponse
*/
public function login()
{
$user = \App\User::first();
auth()->byId($user->id);
if (! $token = JWTAuth::fromUser($user)) {
return response()->json(['error' => 'Unauthorized'], 401); …
Run Code Online (Sandbox Code Playgroud) 我有一个名为 ArchiveScope 的全局查询范围,它模仿了软删除的类似功能。该范围的 apply 方法如下所示:
public function apply(Builder $builder, Model $model)
{
$builder->where('archived_at', '=', NULL);
}
Run Code Online (Sandbox Code Playgroud)
因此,当我使用 时MyModel::all()
,它返回所有没有时间戳(即 NULL)的行。但是当我想获取所有记录(包括存档)时,我仍然得到相同的结果。我正在修补程序中运行此语句:
App\MyModel::withoutGlobalScope(ArchiveScope::class)->get();
奇怪的是,当我使用withoutGlobalScopes()
而不是withoutGlobalScope(ArchiveScope::class)
获得所有记录时。
App\MyModel::withoutGlobalScopes()->get();
我一直听到很多关于SPA的嗡嗡声,所以我想让我们试一试,我开始与Laravel + Vue一起开展SPA项目.
我开始在axios和vue-router的帮助下制作一些CRUD.一切都很顺利,直到我需要授权用户并根据他们的角色做出决定.我意识到,既然我没有服务器端渲染(刀片指令)的优势,我将不得不在vue方面管理角色/权限等.但我不知道如何处理它. ..什么是最佳实践......是否有任何问题需要注意......等等.
于是,我开始了我的研究,我从聚集在这里,那里,而且那里的是,我将不得不在一个JS对象或localStorage的数据存储,以这样的演出的内容:
<p v-if="Laravel.user.role == 'admin'"> Confidential Data </p>
<p v-else> Unimportant Information </p>
Run Code Online (Sandbox Code Playgroud)
但是,如果实际上不是管理员但是主持人的用户Laravel.user.role.push('admin')
在控制台中执行此操作呢?这些敏感数据不会暴露给他吗?
localStorage也可以使用: localStorage.getItem('user.role')
那么处理这种情况的安全/标准/最常见方式是什么?
javascript laravel single-page-application vue.js laravel-authorization
当我们传递这样一个2019-01-01
没有时间的日期值时10:00:00
,时间默认为00:00:00
. 所以最后 db 兼容值被转换成这个:2019-01-01 00:00:00
。我怎样才能强制默认它23:59:00
呢?
示例:我需要设置一个expiry_date
属性,但如果我只接受2019-01-08
用户输入的日期,用户将假设他们将一整天作为到期日期,而实际上它会在第一秒到期,2019-01-08
因为的隐式默认时间00:00:00
。
我如何克服这个问题?我怎样才能设置一个mutator来expiry_date
把它2019-01-01 00:00:00
变成这个2019-01-01 23:59:00
?
Laravel 6 在 phpunit.xml 中包含了一些额外的配置:
<server name="APP_CONFIG_CACHE" value="bootstrap/cache/config.phpunit.php"/>
<server name="APP_SERVICES_CACHE" value="bootstrap/cache/services.phpunit.php"/>
<server name="APP_PACKAGES_CACHE" value="bootstrap/cache/packages.phpunit.php"/>
<server name="APP_ROUTES_CACHE" value="bootstrap/cache/routes.phpunit.php"/>
<server name="APP_EVENTS_CACHE" value="bootstrap/cache/events.phpunit.php"/>
Run Code Online (Sandbox Code Playgroud)
如果我在 PHPStorm 中运行测试,我会收到以下错误:
在 PackageManifest.php 第 168 行:
bootstrap/cache 目录必须存在且可写。
但是 bootstrap/cache 目录确实存在且可写。但是,如果我在 phpunit.xml 中注释掉这些新配置,我的测试运行时不会出现任何错误。我该如何解决?
我也跑了php artisan cache:clear
。没运气。
我正在尝试在我的 Express 应用程序中启用 webpack HMR。它不是 SPA 应用程序。在视图方面,我使用 EJS 和 Vue。我这里没有vue-cli的优势,所以我必须手动为webpack中的SFC(.vue文件)配置vue-loader。另外值得一提的是,我的工作流程非常典型:我的主要客户端资源(scss、js、vue 等)都在resources
目录中。我希望将它们捆绑在我的public
目录中。
我的webpack.config.js
:
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin');
const webpack = require('webpack');
module.exports = {
mode: 'development',
entry: [
'./resources/css/app.scss',
'./resources/js/app.js',
'webpack-hot-middleware/client'
],
output: {
path: path.resolve(__dirname, 'public/js'),
publicPath: '/',
filename: 'app.js',
hotUpdateChunkFilename: "../.hot/[id].[hash].hot-update.js",
hotUpdateMainFilename: "../.hot/[hash].hot-update.json"
},
module: {
rules: [
{
test: /\.(sa|sc|c)ss$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
hmr: process.env.NODE_ENV === 'development'
}
},
'css-loader', …
Run Code Online (Sandbox Code Playgroud)