小编Tan*_*may的帖子

如何在不丢失样式的情况下打印 vue 组件的一部分

我想从 vue 组件打印一些内容。例如,从以下代码段中,我想打印v-card-textid 为的元素#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)

javascript printing vue.js

12
推荐指数
2
解决办法
3万
查看次数

如何在vue模板中引用laravel csrf字段

我有一个包含表单的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?

laravel vue.js laravel-blade

8
推荐指数
1
解决办法
8997
查看次数

如何在laravel中隐藏关系列?

我有这样的声明:

App\User::with('client')->find(2)->makeHidden('client.phone_no');
Run Code Online (Sandbox Code Playgroud)

我想从关系中隐藏某些列,但我不能用 来做到这一点makeHidden(),因为它只接受而Model不是关系的参数。

如何从关系中隐藏一些列?

php laravel eloquent

8
推荐指数
3
解决办法
1万
查看次数

了解Vue中的'this'关键字

我已经开始从头开始学习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访问属性的方式。有人可以让我了解幕后发生的事情吗?

javascript vue.js vuejs2

7
推荐指数
2
解决办法
5362
查看次数

access_token 过期后如何刷新令牌

我在 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)

php jwt laravel

6
推荐指数
1
解决办法
3142
查看次数

Laravel 全局查询范围的 withoutGlobalScope() 不返回所需的记录

我有一个名为 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();

php laravel

5
推荐指数
1
解决办法
6543
查看次数

如何处理SPA中的角色/权限(Laravel + Vue)

我一直听到很多关于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

5
推荐指数
1
解决办法
955
查看次数

在 laravel 中设置一天结束而不是 00:00:00

当我们传递这样一个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

php datetime laravel php-carbon

5
推荐指数
1
解决办法
2630
查看次数

Laravel 6 测试期间出现“引导程序/缓存目录必须存在且可写”错误

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。没运气。

phpunit laravel laravel-6

5
推荐指数
2
解决办法
4154
查看次数

如何在 express 应用中设置 webpack-hot-middleware?

我正在尝试在我的 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)

node.js express webpack vue.js webpack-hmr

5
推荐指数
1
解决办法
5259
查看次数