小编Ahs*_*san的帖子

在服务器上载后,Laravel无法访问存储文件夹中存储的图像

我正在尝试上传和检索我的Laravel项目中的图像.它在我的本地服务器上工作得很好,但在上传到实时服务器之后,它无法正常工作.

我正在使用nginx.

我试过了,php artisan storage:link但它说

"public/storage"目录已存在

我正在使用此行在新页面中打开存储的图像.

<a href="{{ url('/storage/images/'.$file->file_name) }}" title="">View</a>
Run Code Online (Sandbox Code Playgroud)

如果我将鼠标放在视图按钮上,它会显示以下链接:my_ip/storage/images/image.png我认为这是正确的.

但是,单击该链接会重定向到主页.

php storage laravel laravel-5.6

6
推荐指数
2
解决办法
4832
查看次数

尝试在 Laravel 中通过通知返回存储值时出错

我收到此错误

传递给 Illuminate\Auth\SessionGuard::login() 的参数 1 必须实现接口 Illuminate\Contracts\Auth\Authenticatable,给定 null,在 C:\wamp\www\trstbillingapp\vendor\laravel\framework\src\Illuminate\Foundation 中调用\Auth\RegistersUsers.php 在第 35 行并定义

尝试使用此方法存储数据时:

protected function create(array $data)
    {
        $user = User::create([
            'name' => $data['name'],
        ]);
        return $user->notify(new UserRegister($data));
    }
Run Code Online (Sandbox Code Playgroud)

如果我在没有通知的情况下存储数据,它会起作用:

protected function create(array $data)
    {
        $user = User::create([
            'name' => $data['name'],
        ]);
        return $user;
    }
Run Code Online (Sandbox Code Playgroud)

请建议我另一种传递通知的方式。我正在使用 Laravel 5.4。

php laravel laravel-5.4

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

如果选中复选框,Laravel 会存储值

我在 Laravel 中存储多个值。在表单中,我为每个输入都有复选框,如果选中该输入的复选框,我想存储值。我面临的问题是,无论我选中哪个复选框,它总是从第一个输入值保存。如果我选中一个选项,它会存储第一个值。如果我检查两个选项,它会存储第一个和第二个值,依此类推。

这是复选框的表格

<input type="checkbox" name="checked[]" value="{{ $employee->id }}">
Run Code Online (Sandbox Code Playgroud)

商店方法

public function store(Request $request)
    {
        foreach ($request->employee_id as $key => $val) {
            $payrolls = new Payroll;
            if (isset($request->checked[$key])) {
                $payrolls->basic = $request->basic[$key];
                $payrolls->employee_id = $val;
                $payrolls->save();
            }
        }

        return redirect('/');
    }
Run Code Online (Sandbox Code Playgroud)

html php laravel laravel-5.6

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

Laravel 根据与条件的关系求和

我有以下查询,其中有一个关于两个模型之间关系的条件查询。我需要满足条件的出勤时间的总和。我已经尝试过以下方法,但它不起作用。

$users = User::with('attendance')
            ->whereHas('attendance', function (Builder $query) use ($end, $start) {
                $query->whereBetween('date', [$start, $end])
                ->where('status', 2)
                ->select(DB::raw('SUM(hours) as h'));
            })->orderBy('name')
            ->where('status', 0)
            ->get();
Run Code Online (Sandbox Code Playgroud)

在我的刀刃里

@foreach($users as $user)
    {{ $user->h }}
@endforeach
Run Code Online (Sandbox Code Playgroud)

请帮忙

php laravel

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

Laravel Stripe 结帐:419(状态未知)

我正在尝试使用 Stripe 上托管的付款页面来使用 Stripe 结帐。Stripe 文档适用于纯 PHP。但对于 Laravel,它不会重定向到 Stripe 支付页面。在控制台中,它显示POST http://127.0.0.1:8000/stripe 419 (unknown status)和Error: SyntaxError: Unexpected token < in JSON at position 0。根据一些帖子,我添加https://checkout.stripe.com/了VerifyCsrfToken中间件。

结账页面:

<head>
    ...
    <script src="https://polyfill.io/v3/polyfill.min.js?version=3.52.1&features=fetch"></script>
    <script src="https://js.stripe.com/v3/"></script>
</head>
<body>
<button type="button" id="checkout-button">Checkout</button>
<script type="text/javascript">
    var stripe = Stripe("{{ env('STRIPE_KEY') }}");;
    var checkoutButton = document.getElementById("checkout-button");
    checkoutButton.addEventListener("click", function () {
        fetch("{{ route('stripe-store') }}", {
            method: "POST",
        })
            .then(function (response) {
                return response.json();
            })
            .then(function (session) {
                return stripe.redirectToCheckout({ sessionId: session.id }); …
Run Code Online (Sandbox Code Playgroud)

javascript php laravel stripe-payments

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

Laravel dompdf错误“找不到图像或类型未知”

使用dompdf软件包在Laravel 5.4中下载PDF后,出现错误“找不到图像或类型未知”。这是方法

public function pdf()
    {
        $users = User::get();
        $pdf = PDF::loadView('pdf', compact('users'));

        return $pdf->download('Users.pdf');
    }
Run Code Online (Sandbox Code Playgroud)

我的检视档案

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>PDF</title>
</head>
<body> 
    <div class="container">
        <div class="row">
            @foreach ($users as $user)
                <img src="public/storage/images/{{ $user->profile_pic }}" alt="" style="width: 150px; height: 150px;">
            @endforeach
        </div>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用静态图片名称(如下所示),则可以使用

<img src="public/storage/images/image_1.jpg" alt="" style="width: 150px; height: 150px;">
Run Code Online (Sandbox Code Playgroud)

但不适用于动态名称。

请提出我该如何解决。

php dompdf laravel laravel-5.4

4
推荐指数
4
解决办法
5064
查看次数

Laravel Livewire:通过单击按钮加载 Livewire 组件

有 3 个 Livewire 组件UserIsExpired,每个组件分别有 3 个按钮UserIsActive。UserIsPending单击按钮时,它应该用其各自的组件替换先前的组件。

<button wire:click="$emit(active)">{{ __('Active') }}</button>
<button wire:click="$emit(pending)">{{ __('Pending') }}</button>
<button wire:click="$emit(expired)">{{ __('Expired') }}</button>
Run Code Online (Sandbox Code Playgroud)

视野中

<livewire:user-is-active :active="$active"/>
<livewire:user-is-pending :pending="$pending"/>
<livewire:user-is-expired :expired="$expired"/>
Run Code Online (Sandbox Code Playgroud)

组件示例

class UserIsExpired extends Component
{
    protected $listeners = ['expired'];    
    public function render()
    {
        return <<<'blade'
            <div>
                {{-- The best athlete wants his opponent at his best. --}}
            </div>
        blade;
    }
}
Run Code Online (Sandbox Code Playgroud)

Active单击按钮时,它应该加载UserIsActive组件。其他两个也是如此。

我一直在寻找 livewire 文档,但无法找到如何实现它。提前致谢。

php livewires laravel laravel-livewire

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

mysql 用总和连接 3 个表给出错误的结果

我一直在尝试使用 3 个表格制作资产负债表。第一个表是供应商名称。第二个表是应付供应商,第三个表是支付给供应商,两者都与供应商表的外键相连。

我期待这样的结果:

供应商名称----------------------- 到期------------------------ - - - - 支付

name------------------- sum (数量*单价) ------------------sum (支付金额)

我的查询是

SELECT 
    tbl_supplier.supplier_name AS supplier,
    SUM(tbl_payment.pay_amount) AS payment,
    SUM(tbl_stock.stock_qnt * tbl_stock.stock_up) AS due
FROM
    tbl_supplier
        INNER JOIN
    tbl_payment ON tbl_supplier.id = tbl_payment.supplier_id
        INNER JOIN
    tbl_stock ON tbl_supplier.id = tbl_stock.supplier_id
GROUP BY supplier_name
Run Code Online (Sandbox Code Playgroud)


但结果是到期金额乘以付款数量,反之亦然。

例如,如果供应商的应付总额为 1000,并且他已收到 3 次付款,则显示的应付总额为 3000,而不是 1000。

请帮忙。谢谢

mysql database join sum

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

如何使用数组中的date_diff()查找两个日期之间的差异

我需要找到数组中2个日期之间的差异.这是数组:

$lists[] = date('Y-m-d', strtotime($user->created_at));
Run Code Online (Sandbox Code Playgroud)

输出的示例echo $lists[1];是2017-08-01

我试过了

$difftime = $lists[1]->diff($lists[0]);
echo $difftime->format('d');
Run Code Online (Sandbox Code Playgroud)

和 echo $lists[1]->diff($lists[0]);

两个都给我错误:

在字符串上调用成员函数diff()

我也试过了 echo date_diff($lists[1], $lists[0]);

它给出了错误

date_diff()期望参数1为DateTimeInterface,给定字符串

我知道这里有很多关于同一问题的问题,但我找不到适合我的解决方案.所以请帮助我.

php arrays datetime date

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

laravel使用具有特定角色的get()

6个项目并且有用户模型,这是用户模型中的一种方法

public function setPasswordAttribute($password)
{
    $this->attributes['password'] = bcrypt($password);
}
Run Code Online (Sandbox Code Playgroud)

当我在这样的laravel中使用get()时,一切正常

User::get();
Run Code Online (Sandbox Code Playgroud)

它返回所有用户.我的问题是,有没有办法在模型中编写方法,可以返回有条件的用户,而不是像这样的所有用户

public function setRoleToGetData()
{
  $user  = Auth::user()->getSex // getSex is method in the model 
  if($user == 1)
    return users in the whole program like this 
    User::where('user_sex','=',1)->get();
  else
    // return the reverse 
}
Run Code Online (Sandbox Code Playgroud)

我不想写where('user_sex','=',1) in every time i want to get users 感谢

php laravel

0
推荐指数
1
解决办法
45
查看次数