cakephp 3.0 how to populate a select field with values instead of id

You want to use find('list') as this will return the primary key and display field:-

$this->set(
    'magazines', 
    $this->Issues->Magazines->find('list')
);

Then in your form you need the input name to be magazine_id if you're wanting to set the foreign key for the association:-

echo $this->Form->input(
    'magazine_id', 
    [
        'type' => 'select',
        'multiple' => false,
        'options' => $magazines, 
        'empty' => true
    ]
);

See the docs for more info.

Update

If you're experiencing issues with find('list') it is perhaps because your model's displayField is not getting set correctly. Cake normally determines the displayField for the model on initialisation. If this isn't working, or you want a different field you can set this manually in the model's initialize() method. E.g.:-

class MagazinesTable extends Table
{

    public function initialize(array $config)
    {
        $this->displayField('name');
    }
}

Changing 'name' to the appropriate field.

Alternatively, you can choose which field Cake will use for the values returned by find('list') (this is particularly useful when you want to override the default displayField). E.g.:-

$this->Issues->Magazines->find('list', [
    'keyField' => 'id',
    'valueField' => 'name'
]);