Search code examples
phplaravellaravel-4

Pass a boolean to a view in Laravel


What I try to do:

I try to pass a boolean to my view to to check if it is true or not. If it is set to true, I want to add a class. I use Laravel. Actually, here is my situation:

  • The .red class is added to all rows
  • $finances->depense always return 1 even if it says 0 in the database

Here is my code:

index.blade.php

@foreach($finances as $finance)
    @if ($finance->depense = 1)
        <tr class="red">
    @elseif ($finance->depense = 0) 
        <tr>
    @endif
            <td><a href="{{ URL::to('finances/' . $finance->id) }}">{{$finance->description}}</a></td>
            <td>{{ $finance->depense }}</td>
            <td>{{ $finance->prix }}</td>
            <td>{{ $finance->tps }}</td>
            <td>{{ $finance->tvq }}</td>
            <td>{{ $finance->grandtotal }}</td>
        </tr>
@endforeach

FinancesController.php

public function index()
{
    $finances = Finance::all();
    return View::make('finances.index')->withFinances($finances);
}

What is wrong?


Solution

  • The answer was finally very simple..

    Instead of

    @if ($finance->depense = 1)
        <tr class="red">
    @elseif ($finance->depense = 0) 
        <tr>
    @endif
    

    I changed the expression from = (Assignment Operator) to == (Equal)

    @if ($finance->depense == 1)
        <tr class="red">
    @else 
        <tr>
    @endif
    

    Don't forget to use double equal to compare.