I have a method to get an author and display it on a form. It also retrieves the number of quotes attributed to that author. Being pedantic I do not wish to have "1 quotes" so I wrote the following in my layout:
@extends('layouts.dashboardmaster')
$quotetext = "quotes";
if ( $quotes == 1)
{ $quotetext = "quote"; }
@section('pageheading')
<div class="well">
<h2><i class = "fa fa-quote-left"></i> edit author ({{$author->author}}), ({{ number_format($quotes,0) }} {{}}$quotetext }}) </h2>
</div>
@endsection
but I am now getting an error saying
Undefined variable: quotetext
It is clearly defined and I have also tried replacing {{ with
What am I doing wrong?
needs to be
<?php $quotetext = "quotes";
if ( $quotes == 1)
{ $quotetext = "quote"; }
?>
Your view needs to look like this:
@extends('layouts.dashboardmaster')
<?php $quotetext = "quotes"; ?>
@if($quotetext == 1)
<?php $quotetext = "quote"; ?>
@endif
@section('pageheading')
<div class="well">
<h2><i class = "fa fa-quote-left"></i> edit author ({{$author->author}}), ({{ number_format($quotes,0) }} {{$quotetext }}) </h2>
</div>
@endsection
you didn't put php codes in <?php
tag. put them in php tag and everything will be fine
<?php
$quotetext = "quotes";
if ( $quotes == 1){
$quotetext = "quote";
}
?>
from the docs https://laravel.com/docs/5.2/blade
{{ isset($name) ? $name : 'Default' }}
so
{{ isset($quotetext) ?: "quotes" }}
@if ($quotes == 1)
{{ $quotetext = "quote"; }}
@endif
but i think u will get an error about $quotes
aswell, anyway remember this is blade not normal php
Use localization provided by Laravel. See Laravel Docs for more information.
Just as an example, add this to your language file (for example resources/lang/en/lang.php
return [
'quote' => 'quote|quotes',
]
Then use this in your view:
{{ trans_choice('lang.quote', $count) }}