I have a table that displays the data from my database. at the end of each row I have an Edit/Update Button. I would like it when clicking on the edit button it reference the the Edit Form.
My edit form works. I can access the data when visiting computers/{id}/edit, The form displays the current data and I can edit the data and submit the updates and it updates in the database (mysql).
This is my index.blade.php, which displays the table with the update button
#extends('layout')
#section('content')
<h1>Inventory</h1>
<table class="table table-striped">
<thead>
<tr>
<th>Last Name</th>
<th>First Name</th>
<th>Department</th>
<th>Building</th>
<th>Room</th>
<th>Manufacturer</th>
<th>Device</th>
<th>Model</th>
<th>Service Tag</th>
<th>Mac Address</th>
<th>Status</th>
<th>Comments</th>
</tr>
</thead>
<tbody>
#foreach($inventories as $inventory)
<tr>
<td>{{$inventory->lastName}}</td>
<td>{{$inventory->firstName}}</td>
<td>{{$inventory->department}}</td>
<td>{{$inventory->building}}</td>
<td>{{$inventory->room}}</td>
<td>{{$inventory->manufacturer}}</td>
<td>{{$inventory->device}}</td>
<td>{{$inventory->model}}</td>
<td>{{$inventory->tag}}</td>
<td>{{$inventory->macAddress}}</td>
<td>{{$inventory->status}}</td>
<td>{{$inventory->comments}}</td>
<td>
{{--Need the button to open up my edit form--}}
<button formaction="computers/{id}/edit">{{ trans('computers.edit') }}</button>
{{--<input type="submit" name="update" id="update" value="Update" class="btn btn-primary">--}}
</td>
</tr>
#endforeach
</tbody>
</table>
#stop
This is my form.blade.php - which is a partial that I include in my create.blade.php and edit.blade.php and both of these pages work.
<div class="row">
<div class="col-md-6">
<div class="form-group">
{!! Form::label('lastName', 'Last Name:') !!}
{!! Form::text('lastName', null, ['class' => 'form-control' ]) !!}
</div>
<div class="form-group">
{!! Form::label('firstName', 'First Name:') !!}
{!! Form::text('firstName', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('departmen', 'Department:') !!}
{!! Form::text('department', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group" >
{!! Form::label('building', 'Building:') !!}
{!! Form::select('building', ['vanHall' => 'Vanderbilt Hal',
'wilf' => 'Wilf Hall',
'dag' => 'D Agostino Hall',
'furmanHall' => 'Furman Hall',
'wsn' => 'WSN',
'mercer' => 'Mercer',
'training' => 'Traing Room',
'storage' => 'Storage'
</div>
<div class="form-group">
{!! Form::label('room', 'Room:') !!}
{!! Form::text('room', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('manufacturer', 'Manufacturer:') !!}
{!! Form::text('manufacturer', null, ['class' => 'form-control']) !!}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{!! Form::label('device', 'Device:') !!}
{!! Form::select('device', ['desktop' => 'Desktop',
'laptop' => 'Laptop',
'classroom' => 'Classroom',
'printer' => 'Printer',
'mifi' => 'MiFi',
'panopto' => 'Panopto',
'Other' => 'Other',
], null, ['placeholder' => 'Select Device'])!!}
</div>
<div class="form-group">
{!! Form::label('model', 'Model:') !!}
{!! Form::text('model', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('tag', 'Service Tag:') !!}
{!! Form::text('tag', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('macAddress', 'Mac Address:') !!}
{!! Form::text('macAddress', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('status', 'Status:') !!}
{!! Form::select('status', ['active' => 'Active',
'inactive' => 'Inactive',
], null, ['placeholder' => 'Status'])!!}
</div>
<div class="form-group">
{!! Form::label('comments', 'Comments:') !!}
{!! Form::text('comments', null, ['class' => 'form-control']) !!}
</div>
</div>
<div class="col-md-12">
<hr>
<div class="form-group">
{!! Form::submit($submitButtonText, ['class' => 'btn btn-primary form-control']) !!}
{{--<button type="submit" class="btn btn-primary">Submit</button>--}}
</div>
</div>
Instead of using a button I would use an <a> tag.
<a href="{{ url('computers/'.$inventory->id.'/edit') }}>{{ trans('computers.edit') }}</a>
the url() function is a Laravel helper function
Also.. I'm sure there are enough examples of things like this, so make sure you google your question first.
Try this:
<button href="computers/{id}/edit">{{ trans('computers.edit') }}</button>
Or you could use form (Laravel Collective way):
{!! Form::open(['method' => 'Get', 'route' => ['computers.edit', $inventory->id]]) !!}
{!! Form::submit(trans('computers.edit')) !!}
{!! Form::close() !!}
sorry for the late reply
if you are creating the bigger project and if you hate being write the code in every
index.balde.php file for generarting the Edit,Show,Delete Buttons
just use my helper function
For Eg:
Laravel 5.7
Open Your Model it may be Computer or SomeModel
Just Paste the following Code into it
public static function tableActionButtons($fullUrl,$id,$titleValue,$buttonActions = ['show', 'edit', 'delete'],$buttonOptions='')
{
//Value of the post Method
$postMethod = 'POST';
//if the application is laravel then csrf is used
if (function_exists('csrf_token'))
{
$token = csrf_token();
}elseif (!function_exists('csrf_token'))
//else if the mcrypt id is used if the function exits
{
if (function_exists('mcrypt_create_iv'))
{
// if the mcrypt_create_iv id is used if the function exits the set the token
$token = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM));
}
else{
// elseopenssl_random_pseudo_bytes is used if the function exits the set the token
$token = bin2hex(openssl_random_pseudo_bytes(32));
}
}
//action button Value
//(url()->full()) will pass the current browser url to the function[only aplicable in laravel]
$urlWithId =$fullUrl.'/'.$id;
//Charset UsedByFrom
$charset = 'UTF-8';
// Start Delete Button Arguments
//title for delete functions
$deleteFunctionTitle = 'Delete';
//class name for the deletebutton
$deleteButtonClass = 'btn-delete btn btn-xs btn-danger';
//Icon for the delete Button
$deleteButtonIcon = 'fa fa-trash';
//text for the delete button
$deleteButtonText = 'Delete Button';
//dialog Which needs to be displayes while deleting the record
$deleteConfirmationDialog = 'Are You Sure t';
$deleteButtonTooltopPostion = 'top';
// End Delete Button Arguments
// Start Edit Button Arguments
//title for Edit functions
$editFunctionTitle = 'Edit';
$editButtonClass = 'btn-delete btn btn-xs btn-primary';
//Icon for the Edit Button
$editButtonIcon = 'fa fa-pencil';
//text for the Edit button
$editButtonText = 'Edit Button';
$editButtonTooltopPostion = 'top';
// End Edit Button Arguments
// Start Show Button Arguments
//title for Edit functions
$showFunctionTitle = 'Show';
$showButtonClass = 'btn-delete btn btn-xs btn-primary';
//Icon for the Show Button
$showButtonIcon = 'fa fa-eye';
//text for the Show button
$showButtonText = 'Show Button';
$showButtonTooltopPostion = 'top';
// End Show Button Arguments
//Start Arguments for DropDown Buttons
$dropDownButtonName = 'Actions';
//End Arguments for DropDown Buttons
$showButton = '';
$showButton .='
<a href="'.$fullUrl.'/'.$id.'"class="'.$showButtonClass.'"data-toggle="tooltip"data-placement="'.$showButtonTooltopPostion.'"title="'.$showFunctionTitle.'-'.$titleValue.'">
<i class="'.$showButtonIcon.'"></i> '.$showButtonText.'
</a>
';
$editButton ='';
$editButton .='
<a href="'.$urlWithId.'/edit'.'"class="'.$editButtonClass.'"data-toggle="tooltip"data-placement="'.$editButtonTooltopPostion.'" title="'.$editFunctionTitle.'-'.$titleValue.'">
<i class="'.$editButtonIcon.'"></i> '.$editButtonText.'
</a>
';
$deleteButton='';
$deleteButton .='
<form id="form-delete-row' . $id . '" method="'.$postMethod.'" action="'.$urlWithId.'" accept-charset="'.$charset.'"style="display: inline" onSubmit="return confirm("'.$deleteConfirmationDialog.'")">
<input name="_method" type="hidden" value="DELETE">
<input name="_token" type="hidden" value="'.$token.'">
<input name="_id" type="hidden" value="'.$id.'">
<button type="submit"class="'.$deleteButtonClass.'"data-toggle="tooltip"data-placement="'.$deleteButtonTooltopPostion.'" title="'.$deleteFunctionTitle.'-'.$titleValue.'">
<i class="'.$deleteButtonIcon.'"></i>'.$deleteButtonText.'
</button>
</form>
';
$actionButtons = '';
foreach ($buttonActions as $buttonAction)
{
if ($buttonAction == 'show')
{
$actionButtons .= $showButton;
}
if ($buttonAction == 'edit')
{
$actionButtons .= $editButton;
}
if ($buttonAction == 'delete')
{
$actionButtons .= $deleteButton;
}
}
if (empty($buttonOptions))
{
return $actionButtons;
}
elseif (!empty($buttonOptions))
{
if ($buttonOptions == 'group')
{
$buttonGroup = '<div class="btn-group" role="group" aria-label="">
'.$actionButtons.'
</div>';
return $buttonGroup;
}elseif($buttonOptions == 'dropdown')
{
$dropDownButton =
'<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
'.$dropDownButtonName.'
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
'.$actionButtons.'
</div>
</div>
';
return $dropDownButton;
}else
{
return 'only <code>group</code> and <code>dropdown</code> is Available ';
}
}
}
Now all are set then open your index.blade.php
and replace your code
<td>
{{--Need the button to open up my edit form--}}
<button formaction="computers/{id}/edit">{{ trans('computers.edit') }}</button>
<input type="submit" name="update" id="update" value="Update" class="btn btn-primary">
</td>
With This
{!! Computer::tableActionButtons(url()->full(),$inventory->id,$inventory->firstName,['edit',delete,delete],'dropdown'); !!}
If you find any bugs or any issues in buttons please comment in below section to improve my helper script
VERY CAREFUL NOTE THIS IS FOR LARAVEL EXPERTS IF YOU ARE NOW BEGGINER DONT USE IT
just Watch the tutorial at
https://appdividend.com/2018/09/06/laravel-5-7-crud-example-tutorial/
https://laracasts.com/series/laravel-from-scratch-2018
Hope it saved time
Related
I want to use Checklist Field in laravel backpack, but it says that we have to need a relation with another table. But I would like to put the Options in my CrudController like select_from_array.
I have no idea how to custom this field.
I want to use checklist instead of select_from_array
Create a file at resources/views/vendor/backpack/crud/fields/checklist_direct.blade.php with the below content (checklist_direct can be any name you choose):
<!-- checklist with directly provided options -->
<!-- checklist_filtered -->
#php
$options = isset($field['options']) ? $field['options'] : [];
#endphp
<div #include('crud::inc.field_wrapper_attributes') >
<label>{!! $field['label'] !!}</label>
#include('crud::inc.field_translatable_icon')
<?php $entity_model = $crud->getModel(); ?>
<div class="row">
#foreach ($options as $option)
<div class="col-sm-4">
<div class="checkbox">
<label>
<input type="checkbox"
name="{{ $field['name'] }}[]"
value="{{ $option }}"
#if( ( old( $field["name"] ) && in_array($option , old( $field["name"])) ) )
checked = "checked"
#endif > {!! $option !!}
</label>
</div>
</div>
#endforeach
</div>
{{-- HINT --}}
#if (isset($field['hint']))
<p class="help-block">{!! $field['hint'] !!}</p>
#endif
</div>
Then update your call to addField to in your controller would look something like:
$this->crud->addField([
'label' => 'Printers',
'type' => 'checklist_direct',
'name' => 'printer',
'attribute' => 'printer_name',
'options' => ['HP', 'Cannon', 'Dell'],
]);
NOTE: You might also consider using an enum column on your table and using the enum.blade.php field template or possibly making a custom enum field that uses checkboxes instead of a select box.
I needed to do some updates on the code. I create a file at resources/views/vendor/backpack/crud/fields/checklist_array.blade.php with the below content (checklist_array can be any name you choose):
I updated the code for the one below, One of the updates I did was, when editing it did not bring the selected values. Now you are bringing through script in javascript
<!-- checklist with directly provided options -->
<!-- checklist_filtered -->
#php
$options = isset($field['options']) ? $field['options'] : [];
// calculate the value of the hidden input
$field['value'] = old(square_brackets_to_dots($field['name'])) ?? ($field['value'] ?? ($field['default'] ?? []));
if (is_string($field['value'])) {
$field['value'] = json_decode($field['value']);
}
// define the init-function on the wrapper
$field['wrapper']['data-init-function'] = $field['wrapper']['data-init-function'] ?? 'bpFieldInitChecklist';
#endphp
#include('crud::fields.inc.wrapper_start')
<label>{!! $field['label'] !!}</label>
#include('crud::fields.inc.translatable_icon')
<input type="hidden" value='#json($field['value'])' name="{{ $field['name'] }}">
<div class="row">
#foreach ($options as $option)
<div class="col-sm-4">
<div class="checkbox">
<label>
<input type="checkbox" name="{{ $field['name'] }}[]" value="{{ $option }}" #if( ( old( $field["name"] )
&& in_array($option , old( $field["name"])) ) ) checked="checked" #endif> {!! $option !!}
</label>
</div>
</div>
#endforeach
</div>
{{-- HINT --}}
#if (isset($field['hint']))
<p class="help-block">{!! $field['hint'] !!}</p>
#endif
#include('crud::fields.inc.wrapper_end')
{{-- ########################################## --}}
{{-- Extra CSS and JS for this particular field --}}
{{-- If a field type is shown multiple times on a form, the CSS and JS will only be loaded once --}}
#if ($crud->fieldTypeNotLoaded($field))
#php
$crud->markFieldTypeAsLoaded($field);
#endphp
{{-- FIELD JS - will be loaded in the after_scripts section --}}
#push('crud_fields_scripts')
<script>
function bpFieldInitChecklist(element) {
//console.log(element);
var hidden_input = element.find('input[type=hidden]');
var selected_options = JSON.parse(hidden_input.val() || '[]');
var checkboxes = element.find('input[type=checkbox]');
var container = element.find('.row');
// set the default checked/unchecked states on checklist options
checkboxes.each(function(key, option) {
var id = $(this).val();
if (selected_options.map(String).includes(id)) {
$(this).prop('checked', 'checked');
} else {
$(this).prop('checked', false);
}
});
// when a checkbox is clicked
// set the correct value on the hidden input
checkboxes.click(function() {
var newValue = [];
checkboxes.each(function() {
if ($(this).is(':checked')) {
var id = $(this).val();
newValue.push(id);
}
});
hidden_input.val(JSON.stringify(newValue));
});
}
</script>
#endpush
#endif
{{-- End of Extra CSS and JS --}}
{{-- ########################################## --}}
//form
$this->crud->addField([
'label' => 'Printers',
'type' => 'checklist_direct',
'name' => 'printer',
'attribute' => 'printer_name',
'options' => ['HP', 'Cannon', 'Dell'],
]);
//model
protected $casts = [
...
'printer' => 'array',
];
I build a webpage using the framework Phalcon. I have a form asking for a text, an integer and a date. I'm using datepicker (https://jqueryui.com/datepicker/) to get the date. When I make the insertion in the database this date is not inserted, only the text and the int.
I think it is problem of the format of the date, so I want to validate it.
I can validate the presence of data in the text fields but I don't find any "validator" to validate it is a date.
This is my form class:
<?php
use Phalcon\Forms\Form;
use Phalcon\Forms\Element\Text;
use Phalcon\Forms\Element\Date;
use Phalcon\Forms\Element\Password;
use Phalcon\Validation\Validator\PresenceOf;
use Phalcon\Validation\Validator\Email;
class NuevakeywordForm extends Form{
public function initialize($entity = null, $options = null){
// Trackeable
$trackeable = new Text('trackeable');
$trackeable->setLabel('Palabra Clave');
$trackeable->setFilters(array('striptags', 'string'));
$trackeable->addValidators(array(
new PresenceOf(array(
'message' => 'Palabra clave requerida'
))
));
$this->add($trackeable);
// IdCliente
$idcliente = new Text('idcliente');
$idcliente->setLabel('idcliente');
$idcliente->addValidators(array(
new PresenceOf(array(
'message' => 'IdCliente is required'
))
));
$this->add($idcliente);
// Fecha Límite
$fecha = new Text('fecha_final');
$fecha->setLabel('Fecha Final');
$fecha->addValidators(array(
new PresenceOf(array(
'message' => 'Por favor pon una fecha límite'
))
));
$this->add($fecha);
}
}
Here is the view:
<div class="page-header">
<h2>Registro de Nueva Keyword</h2>
</div>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<section class="container animated fadeInUp">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div id="login-wrapper">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
Registrar Nueva Keyword
</h3>
</div>
<div class="panel-body">
{{ form('admin/nuevakeyword/', 'id': 'nuevakeywordForm', 'onbeforesubmit': 'return false') }}
<fieldset>
<div class="control-group">
{{ form.label('trackeable', ['class': 'control-label']) }}
<div class="controls">
{{ form.render('trackeable', ['class': 'form-control']) }}
</div>
</div>
<div class="control-group">
{{ form.label('idcliente', ['class': 'control-label']) }}
<div class="controls">
{{ form.render('idcliente', ['class': 'form-control']) }}
</div>
</div>
<div class="control-group">
{{ form.label('fecha_final', ['class': 'control-label']) }}
<div id="datepicker" class="controls">
{{ form.render('fecha_final', ['class': 'form-control']) }}
</div>
</div>
<div class="form-actions">
{{ submit_button('Insertar', 'class': 'btn btn-primary', 'onclick': 'return SignUp.validate();') }}
</div>
</fieldset>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
<script type="text/javascript">
$(function() {
$("#fecha_final").datepicker();
});
</script>
Here is the controller:
public function nuevakeywordAction(){
$auth = $this->session->get('auth');
$permiso = $auth['active'];
if($permiso!='A'){return $this->forward('servicios/index');}
$form = new NuevakeywordForm;
if ($this->request->isPost()) {
$trackeable = $this->request->getPost('trackeable', array('string', 'striptags'));
$idcliente = $this->request->getPost('idcliente');
$fecha = $this->request->getPost('fecha');
$keyword = new Keyword();
$keyword->trackeable = $trackeable;
$keyword->cliente_idcliente = $idcliente;
$keyword->fecha_inicial = new Phalcon\Db\RawValue('now()');
$keyword->fecha_final = $fecha;
if ($keyword->save() == false) {
foreach ($keyword->getMessages() as $message) {
$this->flash->error((string) $message);
}
} else {
$this->tag->setDefault('trackeable', '');
$this->tag->setDefault('idcliente', '');
$this->tag->setDefault('fecha', '');
$this->flash->success('Keyword agregada correctamente');
return $this->forward('admin/verkeywords');
}
}
$this->view->form = $form;
}
I'm using MariaDB (the same as MySQL). I'm trying to find an "addValidator" for the date, but maybe is other the problem. Any help would be welcomed.
Use Phalcon\Validation\Validator\Date
https://docs.phalconphp.com/en/3.0.0/api/Phalcon_Validation_Validator_Date.html
When I submit my form I receive the following error: 'MethodNotAllowedHttpException in RouteCollection.php line 219'.
How do I solve this? I have looked at various forums and other threads where this has been answered but none have worked for me.
My route file is as follows:
<?php
/*
This is the file in which the rules for how users will use the application are kept
*/
Route::get('/',function() {
return view('welcome');
});
Route::auth();
Route::get('/home', 'HomeController#index');
Route::resource('/questionnaires', 'QuestionnairesController');
Route::resource('/questions', 'QuestionsController');
Route::resource('/answers', 'AnswersController');
\
My create.blade.php file along with the form looks like this:
#extends('layouts.master')
#section('title', 'Create Questionnaire | SurveySays!')
#section('content')
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<h1>Create Questionnaire</h1>
<h3>Create your questionnaire using the form below. Give it a title, a small description and write your ethical considerations:</h3>
#if($errors->any())
<div class="alert alert-danger">
#foreach($errors->all() as $error)
<p>{{ $error }}</p>
#endforeach
</div>
#endif
{!! Form::open(array('url' => '/questionnaires/create')) !!}
<div class="container-fluid">
<div class="form-group">
{!! Form::label('title', 'Title:') !!}
{!! Form::text('title',null,['id' => 'title','class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('description', 'Description:') !!}
{!! Form::textarea('description',null,['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('ethics', 'Ethical considerations:') !!}
{!! Form::textarea('ethics',null,['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::submit('Create', array('class' => 'btn btn-success form-control')) !!}
</div>
</div>
</div>
{!! Form::close() !!}
#endsection
Thanks :)
You should use store method instead. Also, use route, not URL (you don't want to hardcode it):
{!! Form::open(array('route' => 'questionnaires.store') !!}
create method is used to display form to a user. And store used to validate and persist user input data into DB.
More about RESTful resource controllers here.
I see that you didn't setup any POST routes, that means that you cannot send a HTTP POST request to your Laravel site.
If you add this, it will be fine.
Route::post('/questionnaires/create', 'QuestionnairesController#create');
This will setup a route (HTTP POST request) to the QuestionnairesController with the function create().
Hope this works!
Because create only allows GET requests to show the form.
https://laravel.com/docs/5.2/controllers#restful-resource-controllers
Add 'method' => 'post' to your Form::open() array and point it at just /questionnaires.
Any idea how to solve the following approach.
I have a form and want to display the entered data in a specific formtemplate before store it in the DB. If the entered data looks properly, the user can save the form.So I am searching for a way to display the entered data as a preview in a new window/tab first. With my code below I am not able to preview the form without saving the data in the databse. Also display the preview in a new window or tab is not possible. I guess there is no way to achieve this with php / laravel. I tried some onlick events, but no luck. As it seems like the route is prefered.
Any idea how to solve this?
My form looks like:
{{ Form::open(array('url' => 'backend/menubuilder/'.$id, 'method' => 'PUT'))}}
<section>
<div class="container">
<div class="row">
<div class="inputBox">
<div class="col-xs-12 col-md-6">
<h3>Montag</h3>
<div class="form-group">
{{Form::label('gericht_1_mo','Gericht 1')}}
{{Form::textarea('gericht_1_mo', Auth::user()->gericht_1_mo,array('class' => 'form-control'))}}
</div>
<div class="form-group">
{{Form::label('preis_1_mo','Preis', array('class' => 'col-md-6'))}}
{{Form::text('preis_1_mo', Auth::user()->preis_1_mo, array('class' => 'col-md-6'))}}
</div>
<div class="form-group mrgT55">
{{Form::label('gericht_2_mo','Gericht 2')}}
{{Form::textarea('gericht_2_mo', Auth::user()->gericht_2_mo,array('class' => 'form-control'))}}
</div>
<div class="form-group">
{{Form::label('preis_2_mo','Preis', array('class' => 'col-md-6'))}}
{{Form::text('preis_2_mo', Auth::user()->preis_2_mo, array('class' => 'col-md-6'))}}
</div>
</div>
</div>
</div>
</div>
</div>
{{Form::submit('update')}}
{{-- <input type="submit" name="preview" value="preview"> --}}
{{Form::close()}}
{{ Form::open(array('url' => 'backend/menubuilder/templatesview/'.$id, 'method' => 'POST'))}}
{{-- {{Form::submit('Preview',array('onClick' => 'target_blank'))}} --}}
<input onclick="newTab()" type="submit" name="preview" value="preview" >
{{Form::close()}}
My routes:
Route::get('backend/menubuilder/templates/{id}', 'MenuBuilderController#template');
Route::post('backend/menubuilder/templatesview/{id}', 'MenuBuilderController#preview');
My Controller:
public function preview($id)
{
$user = User::find($id);
$owner = (Auth::id() === (int) $id);
return View::make('backend/menubuilder/templatesview/tempone')->withUser($user)->withOwner($owner);
}
public function template($id)
{
$user = User::find($id);
$owner = (Auth::id() === (int) $id);
return View::make('backend/menubuilder/templates/tempone')->withUser($user)->withOwner($owner);
}
How do I view each individual record? Each record is a link, if clicked, it should display the record on the view page.
Route::get('question/{$id}', array('as'=>'question', 'uses'=>'QuestionController#show'));
THis is hte show method to display:
public function show($id = null)
{
return view('questions.view')
->with('title', 'Make it Snappy - Question')
->with('question', Question::find($id))
->with('users', Auth::user()->username);
}
This is the index.blade.php page
#extends('layouts.default')
#section('content')
<h1>Ask a Question</h1>
#if(Auth::check())
#if($errors->has())
<p>The following errors have occured:</p>
<ul id="form-errors">
{!! $errors->first('ask
', '<li>:message</li>') !!}
</ul>
#endif
{!! Form::open(array('url' => 'ask', 'method' => 'post')) !!}
{!! Form::token() !!}
<p>
{!! Form::label('question', 'Question') !!}<br />
{!! Form::text('question', Input::old('question')) !!} <br />
{!! Form::submit('Ask a Question') !!}
</p>
{!! Form::close() !!}
#else
<p>Please login to ask a question.</p>
#endif
<div id="questions">
<h2>Unsolved Questions</h2>
#if(!count($questions) > 0)
<p>No questions have been asked</p>
#else
<ul>
#foreach($questions as $question)
<li>{!! Html::linkRoute('question', str_limit($question->questions, 35), $question->id) !!} by
#if(count($users) > 0)
#foreach($users as $user)
#if($user->id === $question->userid)
{!! ucfirst($user->username) !!}
#endif
#endforeach
#endif
</li>
#endforeach
</ul>
{!! $questions->render() !!}
#endif
</div>
#stop
All i want is that when I click on any of the questions it should be displayed on the view page. I appreciate your support.
Route::get('question/{$id}', array('as'=>'question', 'uses'=>'QuestionController#show'));
your route accepts get while ur form method was post so it couldnt find get request so try making it get
{!! Form::open(array('url' => 'question', 'method' => 'post')) !!}
try it
{!! Form::open(array('url' => 'question', 'method' => 'get')) !!}