首页 > 解决方案 > Facade\Ignition\Exceptions\ViewException 试图获取非对象的属性“名称”

问题描述

我有一个错误,我不知道如何解决它。我尝试添加?? ""$customer->name不起作用。

lluminate\Foundation\Bootstrap\HandleExceptions::handleError C:\laragon\www\zorland-app\resources\views/invoices/create.blade.php:33

创建.blade.php

<div class="float-left col-md-6">
             Odaberi kupca: <b>{{ $customer->name  }}</b>
            <input type="hidden" name="invoice[customer_id]" value="{{ $customer->id }}" />
</div>

客户.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Customer extends Model
{
    //

    protected $fillable = ['name', 'address', 'postcode', 'city', 'state', 'country_id', 'postcode', 'phone', 'email'];

    public function customer_fields() 
    {
        return $this->hasMany(CustomersField::class);
    }
    public function country()
    {
        return $this->belongsTo(Country::class);
    }
}

客户控制器.php

<?php

namespace App\Http\Controllers;

use App\Country;
use App\Customer;
use App\CustomersField;
use Illuminate\Http\Request;


class CustomersController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $customers = Customer::all();
        return view( 'customers.index', compact('customers'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $countries = Country::all();
        return view('customers.create', compact('countries'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $customer = Customer::create($request->all());
        for ($i=0; $i < count($request->customer_fields); $i++) {
            if (isset($request->customer_fields[$i]['field_key']) && isset($request->customer_fields[$i]['field_value'])) {
                CustomersField::create([
                    'customer_id' => $customer->id,
                    'field_key' => $request->customer_fields[$i]['field_key'],
                    'field_value' => $request->customer_fields[$i]['field_value']

                ]);
            }

        } 
        return redirect()->route('customers.index');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

发票控制器.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Customer;
use App\CustomersField;
use App\Invoice;
use App\InvoicesItem;
use App\Product;

class InvoicesController extends Controller
{
    //
    public function create(Request $request) 
    {
        $customer = Customer::find($request->customer_id);
        $tax = 0;
        $products = Product::all();
        return view('invoices.create', compact('tax', 'products', 'customer'));
    }
    public function store(Request $request) 
    {
        $invoice = Invoice::create($request->invoice);

        for ($i=0; $i < count($request->product); $i++) {
            if (isset($request->qty[$i]) && isset($request->price[$i])) {
                InvoicesItem::create([
                    'invoice_id' => $invoice->id,
                    'name' => $request->product[$i],
                    'quantity' => $request->qty[$i],
                    'price' => $request->price[$i]
                ]);
            }

        } 



        return redirect()->route('home');
    }

    public function show($invoice_id) 
    {

        $invoice = Invoice::findOrFail($invoice_id);
        return view('invoices.show', compact( 'invoice')); 
    }

    public function download($invoice_id) 
    {

        $invoice = Invoice::findOrFail($invoice_id);
        $pdf     = \PDF::loadView('invoices.pdf', compact('invoice'));

        return $pdf->stream('invoice.pdf');
    }

}

标签: phplaravel

解决方案


推荐阅读