Я использую Laravel 4!
Если вы хотите, чтобы ваша функция запускалась при регистрации пользователя, вам необходимо поместить ее в Контроллер, отвечающий за регистрацию пользователей.
Контроллеры находятся в папке /app/controllers
.
Если вы недавно (1 минута назад) установлен ** Laravel 4,1 и не имеют контроллер, которые отвечают за регистрации пользователей (как меня, после установки у меня есть страница на с только изображение и you arrived
и нет ссылки для регистрации и входа в систему, как после установки yii), когда вам нужно создать его.
Для создания контроллера UsersController
/app/controllers
положить в файл с именем UsersController.php и код:
<?php
class UsersController extends BaseController {
//!!show the form for registration from root /app/views/some_file name_like_register.blade.php in witch is html form
public function getRegister() {
return View::make('users/register');
}
//!! register user when post data come from form
public function postRegister() {
//Here you can put your function
$rules = User::$validation;
$validation = Validator::make(Input::all(), $rules);
if ($validation->fails()) {
return Redirect::to('public/users/register')->withErrors($validation)->withInput();
}
$user = new User();
$user->fill(Input::all());
$id = $user->register();
return $this->getMessage("Registered successfull.");
}
}
Добавить изменения в User
модели. После
class User extends Eloquent implements UserInterface, RemindableInterface {
добавить
//form validation
public static $validation = array(
'email' => 'required|email|unique:users',
'username' => 'required|alpha_num|unique:users',
'password' => 'required|confirmed|min:6',
);
//for registration
protected $fillable = array('username', 'email', 'password');
//
public function register() {
//Here you can put your function
$this->password = Hash::make($this->password);
$this->activationCode = $this->generateCode();
$this->save();
Log::info("User [{$this->email}] registered. Activation code: {$this->activationCode}");
/*$this->sendActivationMail();*/ //send email with activation code, set 1 to isActive value
return $this->id;
}
protected function sendActivationMail() { /*do*/}
protected function generateCode() {
return Str::random();
}
Make-файл с именем register.blade.php
в /app/views/
с кодом:
@section('title')
@section('content')
<div class="container">
@if ($errors->all())
<div class="alert alert-danger">
@foreach ($errors->all() as $error)
<p>{{ $error }}</p>
@endforeach
</div>
@endif
<h1>Registration</h1>
{{ Form::open(array('url' => '/users/register', 'role' => 'form', 'class' => 'form-horizontal')) }}
<div class="form-group">
{{ Form::label('email', 'E-Mail', array('class' => 'col-sm-2 control-label')) }}
<div class="col-sm-5">
{{ Form::email('email', null, array('class' => 'form-control')) }}
</div>
</div>
<div class="form-group">
{{ Form::label('username', 'login', array('class' => 'col-sm-2 control-label')) }}
<div class="col-sm-5">
{{ Form::text('username', null, array('class' => 'form-control')) }}
</div>
</div>
<div class="form-group">
{{ Form::label('password', 'password', array('class' => 'col-sm-2 control-label')) }}
<div class="col-sm-5">
{{ Form::password('password', array('class' => 'form-control')) }}
</div>
</div>
<div class="form-group">
{{ Form::label('password_confirmation', 'retype pass', array('class' => 'col-sm-2 control-label')) }}
<div class="col-sm-5">
{{ Form::password('password_confirmation', array('class' => 'form-control')) }}
</div>
</div>
<div class="form-group">
<div class="col-sm-2"> </div>
<div class="col-sm-5">
<button type="submit" class="btn btn-primary">Go</button>
</div>
</div>
{{ Form::close() }}
В таблице пользователей добавить registraci
ячейку.Структура таблицы является
Schema::create('users', function(Blueprint $table) {
$table->increments('id');
$table->string('email')->unique();
$table->string('password', 60);
$table->string('username')->unique();
$table->boolean('isAdmin');
$table->boolean('isActive')->index();
$table->string('activationCode');
$table->rememberToken();
$table->timestamps();
// also add your registraci
$table->string('registraci', 200);
});
Для включения драйвера базы данных открытого /app/config/database.php
и изменить при необходимости
//select mysql or other
'default' => 'mysql'
...
//database and other change here
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'laravel',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
)
Если я потерял что-то вы получите ошибки сообщения не нравится oops
, но реальные проблемы Чтобы увидеть ошибки перейти к /app/config/app.php
и установлены на
'debug' => true,
Добро пожаловать в SO. Есть ли что-то, что вы пытались и испытываете проблемы? – lagbox
Я хочу перейти от старого phpmysqlm к laravel framework, теперь я не знаю, как это сделать с этой функцией, сгенерируйте no_registrasi для пользователя в форме registrastion –
Если я правильно понимаю, я считаю, что вам нужно несколько шагов, чтобы ознакомиться с ними перед вами может получить ответ. Ваша функция все еще может работать, но вам нужно будет извлечь части sql и добавить в Laravel Models. Стандартная «пользовательская» модель имеет предварительно выполненную миграцию, в которую вы можете добавить поле «no_registrasi», а затем получить доступ к этому пользовательскому полю в процессе регистрации (вы можете добавить $ kode val в пользовательскую модель при регистрации через $ user-> no_registrasi или simliar. Но нужно сначала создать таблицу DB в процессе миграции. – Watercayman