2017-01-21 3 views
0

Я новичок в Laravel, но я работал над этим. Я искал сайт, но не могу найти конкретную помощь. Я создал переменную в моем контроллере (и проверил ее 1000 раз против учебника) и передал ее в представление, но браузер дает ошибку «Неопределенная переменная».Laravel - передача переменной с контроллера для просмотра - неопределенная переменная

$company содержит таблицу строк после публикации. Я подозреваю, что это может быть связано с тем, что это массив.

ресурсная функция контроллера показать

public function show($comp_id) 
{ 
    $company = Company::find($comp_id); 
    return view('companies.show')->with('company', $company); 
} 

И в представлении:

@section('content') 
    <h1>{{ $company->CompanyName }}</h1> 

Я уверен, что это просто ошибка, но любая помощь, пожалуйста?

+0

Я видел там много синтаксических ошибок. –

+0

Проверьте, что dd ($ comp_id) в контроллере возвращает правильное значение –

ответ

0

Оказывается, я должен был установить show($id) к конкретному имени идентификатора в моей колонке таблицы ,
public function show($id) $company = Company::where('Comp_id', $id)->first(); return view('companies.show')->withCompany($company);
Спасибо за вашу помощь в любом случае.

+0

Все хорошо, что хорошо кончается.Не могли бы вы принять свой ответ, чтобы другие знали, что этот вопрос решен? –

+0

Хорошо, не знал, что я могу принять свой собственный ответ, но это имеет смысл. – PDevH

0

Как упоминалось в Sanzeeb, ваш синтаксис имеет несколько ошибок. Попробуем сначала их исправить.

В контроллере, пожалуйста, измените метод следующим образом:

public function show($comp_id) 
{ 
    $company = Company::find($comp_id); 

    return view('companies.show')->with('company', $company); 
} 

Тогда, пожалуйста, измените fiew следующим образом:

@section('content') 

<h1>{{ $company->CompanyName }}</h1> 

И давайте посмотрим, если это помогает.

+0

Eitan, ваша цитата моего кода показывает полуточку между переменной и классом, но в моем представлении она имела знак равенства. Ваш брекетинг в «обратном представлении» отличается от того, что предложил Том Копа. Я тестировал оба, но все еще получаю: ErrorException в 67ad97908c79b9baf76653c370849a03da33d1aa.php строка 5: Неопределенная переменная: компания (вид: C: \ Sites \ AI \ resources \ views \ companies \ show.blade.php) – PDevH

+0

Простите, это мой первый вопрос о SO, поэтому я все еще изучаю синтаксисы и протокол. Кажется, @Pauwelyn сделал некоторые ошибки в расшифровке моего кода из изображений, которые я опубликовал в своем вопросе. В конце строки «return view» есть скобка, и у меня есть «@ stop» в конце кода View. – PDevH

0

Вам нужно исправить некоторые вещи. попробуйте это пожалуйста.

В контроллере, пожалуйста, измените метод следующим образом:

public function show($comp_id) 
{ 
    $company = Company::find($comp_id); 

    return view('companies.show', compact('company')); 
} 

И в представлении:

@section('content') 
<h1>{{ $company->CompanyName }}</h1> 
@stop 
+0

Я считаю, что это синтаксис для Laravel 5, в то время как вопрос PDevH подразумевает, что он использует Laracel 4. –

+1

@ ТомицаКораћ хорошо, в этом случае позволяет дождаться, когда он расскажет нам. и если да, тогда мы изменимся :) – GabMic

+0

Я использую Laravel 5.3. Я тестировал все варианты ваших предложений, в частности, брекетинг и использование 'compact' vs' with'. Не повезло. – PDevH