小编Nor*_*gul的帖子

Laravel流浪汉不起作用 - Errno :: EADDRNOTAVAIL

我最近在Laravel环境或Windows 10的一部分更新时出现了一些错误,因此在经过大量试验和错误后,我决定删除所有内容并从头开始.所以现在我有了新的VirtualBox,Vagrant,Laravel/Homestead盒子和Homestead本身.

但是,我确实收到此错误:

$ vagrant up
Bringing machine 'homestead-7' up with 'virtualbox' provider...
==> homestead-7: Importing base box 'laravel/homestead'...
==> homestead-7: Matching MAC address for NAT networking...
==> homestead-7: Checking if box 'laravel/homestead' is up to date...
==> homestead-7: Setting the name of the VM: homestead-7
==> homestead-7: Destroying VM and associated drives...
C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.9.3/lib/vagrant/util/is_port_open.rb:21:in `initialize': The requested address is not valid in its context. - connect(2) for "0.0.0.0" port 8000 (Errno::EADDRNOTAVAIL)
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.9.3/lib/vagrant/util/is_port_open.rb:21:in `new'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.9.3/lib/vagrant/util/is_port_open.rb:21:in `block in is_port_open?'
        from …
Run Code Online (Sandbox Code Playgroud)

php vagrant laravel homestead

17
推荐指数
1
解决办法
3800
查看次数

Laravel按相关表格排序

我的项目中有产品和类别模型.产品属于Category.由于Product有外键category_id,我可以轻松地对输出进行排序,如下所示:

$products = Product::orderBy('category_id', 'asc')->get();
Run Code Online (Sandbox Code Playgroud)

但我真正想要的是按类别名称对产品进行排序,所以我尝试了:

$products = Product::with(['categories' => function($q){
            $q->orderBy('name', 'asc')->first();
        }]);
Run Code Online (Sandbox Code Playgroud)

但这没有任何结果.作为测试,我已经返回return Product::with('categories')->first();,它输出正常...

这是雄辩的关系.

产品

class Product extends Model
{
    protected $fillable = [
        'name',
        'description',
        'price',
        'category_id',
    ];

    protected $hidden = [
        'created_at',
        'updated_at',
    ];

    public function categories()
    {
        return $this->belongsTo('\App\Category', 'category_id');
    }
}
Run Code Online (Sandbox Code Playgroud)

类别:

class Category extends Model
{
    protected $fillable = [
        'name'
    ];

    public function products()
    {
        return $this->hasMany('\App\Product');
    }
}
Run Code Online (Sandbox Code Playgroud)

而观点部分:

@foreach ($products as $product)
                <tr>

                    <td>{!! $product->categories->name !!}</td>
                    <td> …
Run Code Online (Sandbox Code Playgroud)

php sorting html-table laravel

9
推荐指数
2
解决办法
7820
查看次数

C#初始化对象值

有没有办法一次性更改C#对象值...在一行?

所以,如果我有一个Result带有string msg和的类,并且bool isPositive我已经在某处之前调用了构造函数,就像var result = new Result();我可以通过不输入以某种方式更改值:

result.msg = "xxxxxx";
result.bool = false;
Run Code Online (Sandbox Code Playgroud)

但是做一些像实例化时你可以做的事情:

result { msg = "", bool = true}
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过以下方式再次实例化一个新对象来实现:

var result = new Result() { msg = "", bool = true}
Run Code Online (Sandbox Code Playgroud)

但这不是我的问题:)

c# initialization object

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

Laravel CSRF保护

我知道CSRF攻击是什么,我已经阅读了有关它的文档,但是我无法理解CSRF保护如何深入工作,并且有一些我无法找到的一般性问题.

文档中,它说Laravel会自动为其生成令牌

...由应用程序管理的每个活动用户会话.

  1. 它在哪里创建令牌(代码的哪一部分触发它)?
  2. 创建后,令牌在cookie中存储在哪里?在会议中?如何提取并查看已存储的内容?这一切都是由session.php
  3. 当我重新加载页面时,这意味着什么,令牌仍然与session.php120分钟的默认生命周期相同?
  4. 如果我将我的domain属性设置为导航到同一个应用程序处理的子域,那么该cookie会发生什么"." . env('APP_URL')

因此,一旦令牌被创建并存储在某个地方,在发出请求时,我必须向csrf_token()表单提供隐藏属性,或者将其生成为元字段并在我正在执行AJAX请求时重定向到我的JS文件.

  1. 那么当我实际提出请求时,在低级别会发生什么?请求生成csrf_token(),Laravel加密cookie,Laravel检查发送的cookie是否与会话中的cookie相同.如果是,则表示请求有效,如果不是,则抛出TokenMissmatchException

  2. 这是否意味着cookie生命周期内的每个请求都具有相同的令牌?

  3. Laravel是否以不同方式加密请求和响应cookie?如果我在EncryptCookies类I中从cookie加密中排除令牌获得相同的令牌,但是当我离开它时,哈希是不同的.

  4. 如何_token在请求数据中提供与转发令牌不同的X-CSRF-TOKEN标头?如果我看到它们未加密,Laravel如何验证这些?请求后他们是否加密?

php cookies csrf token laravel

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

是否可以在 Alpine 3.12 Docker 镜像上安装 PHP7.4?

是否可以在Alpine 3.12 Docker 镜像上安装 PHP7.4 ?

我已经看到这个 repo及其使用 bintray 证书和存储库路径的 dockerfile,但我想知道是否有更“标准/高山”的本地方式来做这件事?

php linux docker alpine-linux php-7.4

8
推荐指数
2
解决办法
8115
查看次数

如果不存在,jQuery追加

div如果它还没有,我想追加一个.我正在尝试这个但它不起作用:

$('#method_id').on('change', function (e) {

    if ($(this).find("option:selected").data('method-column-id') != 1) {
        if ($('#column_message').next('div').length)
            $('#column_message')
                    .append('<div id="warning_message" class="alert alert-danger"><strong>Warning!</strong> Installed column and method do not match</div>');
    } else {
        $('.form-group').find('#column_message>.alert').remove();
    }
});
Run Code Online (Sandbox Code Playgroud)

如果我删除第二个if子句,每次选择传递第一个if子句的选项时都会附加它

这是HTML

<!-- Warning message -->
<div class="form-group">
    <label for="group" class="col-md-2 control-label"></label>
    <div id="column_message" class="col-md-6">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript jquery

7
推荐指数
1
解决办法
8974
查看次数

Laravel cookie加密

Laravel是否有不同的请求和响应cookie?

我正在使用主域和子域,并设置了CORS和CSRF,如果我从EncryptCookies类中排除cookie,我会在响应头和请求头中看到相同的cookie.

但是,如果我让它们加密,我会得到不同的"加密字符串",并且不知道这是否是可接受的行为?

EncryptCookiesclass仅列在web部分中Kernel.php

php encryption cookies laravel

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

JS getElementById 仅在检查元素后可见

我有一个奇怪的行为,我在主屏幕上渲染了基于存储在数据库中的 HTML 的代码。

\n\n

如果我getElementById(\xe2\x80\x98myGivenId\xe2\x80\x99)在 Chrome 检查器的控制台中这样做,我会得到null. 但是,当我单击检查元素(屏幕上的任何位置)并尝试再次获取元素后,它就会出现。

\n\n

如何让元素默认“可查找”?

\n\n

代码部分:

\n\n
<div class="hidden popupbox" data-contentid="666">\n    <iframe width="16" height="9" src="//www.youtube.com/embed/...modestbranding=1" autohide="1"\n                                frameborder="0" allowfullscreen="" class="video" id="myGivenId"></iframe>\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n

正在做document.getElementById(\'myGivenId\')

\n

javascript

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

JSON Simple:整数解析

我在REST服务中解析JSON整数时遇到问题.解析String和double类型工作正常

工作:

JSONParser parser = new JSONParser();
Object obj = null;
try {
    obj = parser.parse(input);
} catch (ParseException e) {
    e.printStackTrace();
}
JSONObject jsonObject = (JSONObject) obj;   

//---------------
String uName = (String) jsonObject.get("userName");
double iPrice = (Double) jsonObject.get("itemPrice");
Run Code Online (Sandbox Code Playgroud)

不工作:

int baskId = (Integer) jsonObject.get("basketId");
Run Code Online (Sandbox Code Playgroud)

我试图将basketId我的篮子类转换为String,然后它运行正常,所以代码没问题,链接正常,但是,当我把它转回int时,我得到500服务器错误.我用它来创建一个带有一些数字ID的新篮子,所以我使用@POST注释,有效载荷中的JSON如下:

{"basketId":50}
Run Code Online (Sandbox Code Playgroud)

我不明白......

编辑:我确实得到它... JSON simple接受更大类型的Java原语,所以整数和浮点数是禁止的

java rest post json

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

Laravel 跨子域 CSRF、AJAX JS

从子域向我的域发出请求时,我似乎遇到了 CSRF 保护问题。我已设置 CORS,但预检检查失败。

我已经在我的主脑中设置了

<meta name="csrf-token" content="{{ csrf_token() }}">
Run Code Online (Sandbox Code Playgroud)

并附加到每个ajax请求:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
Run Code Online (Sandbox Code Playgroud)

我的 CORS 设置:

return $next($request)
    ->header('Access-Control-Allow-Origin', $allowedUrl)
    ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
    ->header('Access-Control-Allow-Headers', 'x-csrf-token');
Run Code Online (Sandbox Code Playgroud)

请求失败:

无法加载https://example.com/account/login-ajax:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ https://sub.example.com ”。

php ajax jquery csrf laravel

5
推荐指数
0
解决办法
1038
查看次数